Stop chip from updating if patch set is changed.
* Chip is always meant to display the results of the latest patchset.
Change-Id: Ifdc044e7ef04d8124e24dc692b44d5885555b834
diff --git a/gr-checks/gr-checks-chip-view.js b/gr-checks/gr-checks-chip-view.js
index c19671d..74346c0 100644
--- a/gr-checks/gr-checks-chip-view.js
+++ b/gr-checks/gr-checks-chip-view.js
@@ -100,7 +100,7 @@
},
observers: [
- '_pollChecksRegularly(change, revision, getChecks)',
+ '_pollChecksRegularly(change, getChecks)',
],
listeners: {
@@ -123,13 +123,14 @@
/**
* @param {!Defs.Change} change
- * @param {!Defs.Revision} revision
* @param {function(number, number): !Promise<!Object>} getChecks
*/
- _fetchChecks(change, revision, getChecks) {
- if (!getChecks || !change || !revision) return;
+ _fetchChecks(change, getChecks) {
+ if (!getChecks || !change) return;
- getChecks(change._number, revision._number).then(checks => {
+ // change.current_revision always points to latest patchset
+ getChecks(change._number, change.revisions[change.current_revision]
+ ._number).then(checks => {
this.set('_hasChecks', checks.length > 0);
if (checks.length > 0) {
this._downgradeFailureToWarning =
@@ -149,14 +150,14 @@
clearInterval(this.pollChecksInterval);
return;
}
- this._pollChecksRegularly(this.change, this.revision, this.getChecks);
+ this._pollChecksRegularly(this.change, this.getChecks);
},
- _pollChecksRegularly(change, revision, getChecks) {
+ _pollChecksRegularly(change, getChecks) {
if (this.pollChecksInterval) {
clearInterval(this.pollChecksInterval);
}
- const poll = () => this._fetchChecks(change, revision, getChecks);
+ const poll = () => this._fetchChecks(change, getChecks);
poll();
this.pollChecksInterval = setInterval(poll, CHECKS_POLL_INTERVAL_MS);
if (!this.visibilityChangeListenerAdded) {
diff --git a/gr-checks/gr-checks-chip-view_test.html b/gr-checks/gr-checks-chip-view_test.html
index e926e60..105227c 100644
--- a/gr-checks/gr-checks-chip-view_test.html
+++ b/gr-checks/gr-checks-chip-view_test.html
@@ -48,6 +48,12 @@
getChecks: getChecksSpy,
change: {
_number: 314,
+ current_revision: 'abcd',
+ revisions: {
+ abcd: {
+ _number: 271,
+ },
+ },
},
revision: {
_number: 271,
@@ -62,6 +68,14 @@
assert.include(element.textContent.trim(), 'Checks:');
});
+ test('updating revision does not update getChecks call', done => {
+ element.revision = {_number: 272};
+ flush(() => {
+ assert.isFalse(getChecksSpy.calledWith(314, 272));
+ done();
+ });
+ });
+
suite('builds chip contents', () => {
test('queries the checks', () => {
assert.isTrue(getChecksSpy.called);