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);