summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKasper Nilsson <kaspern@google.com>2018-09-20 11:38:51 -0700
committerKasper Nilsson <kaspern@google.com>2018-09-20 11:41:34 -0700
commit64e53550da3b1bd666d4797ddf29f5ca49797a6c (patch)
tree74c277edf3a5c4edc11d5809c45c6c9a7a69e181
parent95a6935ff5367cd2460fa0402c68faf834755f6e (diff)
Deflake label change test
This seems to be a more declarative way to test this functionality, as the flush() calls caused flakes. This test is still an integration test, as it tests the way the plugin API interacts with the change metadata. Bug: Issue 9259 Change-Id: I43b882a3e2eda306cd0cbef12e57b140d8a548c5
-rw-r--r--polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata-it_test.html51
1 files changed, 25 insertions, 26 deletions
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata-it_test.html b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata-it_test.html
index b056233d96..5b36221b86 100644
--- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata-it_test.html
+++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata-it_test.html
@@ -136,43 +136,42 @@ limitations under the License.
suite('label updates', () => {
let plugin;
- let labelChangeStub;
- setup(done => {
+ setup(() => {
Gerrit.install(p => plugin = p, '0.1',
new URL('test/plugin.html?' + Math.random(),
window.location.href).toString());
sandbox.stub(Gerrit, '_arePluginsLoaded').returns(true);
Gerrit._setPluginsPending([]);
element = createElement();
-
- labelChangeStub = sandbox.stub();
- plugin.changeMetadata().onLabelsChanged(labelChangeStub);
- flush(done);
});
test('labels changed callback', done => {
- assert.equal(labelChangeStub.callCount, 1);
- assert.isTrue(labelChangeStub.calledWithExactly(labels));
- assert.equal(labelChangeStub.args[0][0]['CI'].all.length, 2);
- element.set(['change', 'labels'], {
- CI: {
- all: [
- {value: 1, name: 'user 2', _account_id: 1},
- ],
- values: {
- ' 0': 'Don\'t submit as-is',
- '+1': 'No score',
- '+2': 'Looks good to me',
- },
- },
- });
- // Wait for fake rest API response.
- flush(() => {
- assert.equal(labelChangeStub.callCount, 2);
- assert.equal(labelChangeStub.args[1][0]['CI'].all.length, 1);
- done();
+ let callCount = 0;
+ const labelChangeSpy = sandbox.spy(arg => {
+ callCount++;
+ if (callCount === 1) {
+ assert.deepEqual(arg, labels);
+ assert.equal(arg.CI.all.length, 2);
+ element.set(['change', 'labels'], {
+ CI: {
+ all: [
+ {value: 1, name: 'user 2', _account_id: 1},
+ ],
+ values: {
+ ' 0': 'Don\'t submit as-is',
+ '+1': 'No score',
+ '+2': 'Looks good to me',
+ },
+ },
+ });
+ } else if (callCount === 2) {
+ assert.equal(arg.CI.all.length, 1);
+ done();
+ }
});
+
+ plugin.changeMetadata().onLabelsChanged(labelChangeSpy);
});
});
});