Do not load mergeability for closed changes
Change I01d03de9f2 disabled the mergeability response in change details, and replaced it with a request to the mergeability API. However, the API returns HTTP 409 when asked about closed changes, resulting in status chips never appearing for closed changes. With this change, closed changes are treated as mergeable, and the unsatisfiable mergeability request is never made. Change-Id: I581cd775d156b724ad6e1ae6e4082284f8accffe
This commit is contained in:
@@ -1152,6 +1152,15 @@
|
||||
},
|
||||
|
||||
_getMergeability() {
|
||||
// If the change is closed, it is not mergeable. Note: already merged
|
||||
// changes are obviously not mergeable, but the mergeability API will not
|
||||
// answer for abandoned changes.
|
||||
if (this._change.status === this.ChangeStatus.MERGED ||
|
||||
this._change.status === this.ChangeStatus.ABANDONED) {
|
||||
this._mergeable = false;
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
this._mergeable = null;
|
||||
return this.$.restAPI.getMergeable(this._changeNum).then(m => {
|
||||
this._mergeable = m.mergeable;
|
||||
|
||||
@@ -1541,5 +1541,41 @@ limitations under the License.
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
suite('_getMergeability', () => {
|
||||
let getMergeableStub;
|
||||
|
||||
setup(() => {
|
||||
element._change = {labels: {}};
|
||||
getMergeableStub = sandbox.stub(element.$.restAPI, 'getMergeable')
|
||||
.returns(Promise.resolve({mergeable: true}));
|
||||
});
|
||||
|
||||
test('merged change', () => {
|
||||
element._mergeable = null;
|
||||
element._change.status = element.ChangeStatus.MERGED;
|
||||
return element._getMergeability().then(() => {
|
||||
assert.isFalse(element._mergeable);
|
||||
assert.isFalse(getMergeableStub.called);
|
||||
});
|
||||
});
|
||||
|
||||
test('abandoned change', () => {
|
||||
element._mergeable = null;
|
||||
element._change.status = element.ChangeStatus.ABANDONED;
|
||||
return element._getMergeability().then(() => {
|
||||
assert.isFalse(element._mergeable);
|
||||
assert.isFalse(getMergeableStub.called);
|
||||
});
|
||||
});
|
||||
|
||||
test('open change', () => {
|
||||
element._mergeable = null;
|
||||
return element._getMergeability().then(() => {
|
||||
assert.isTrue(element._mergeable);
|
||||
assert.isTrue(getMergeableStub.called);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user