Wait for all plugins to load before sending plugin events
Bug: Issue 5068
Change-Id: I10694895c17e3f8b487fb6765d76b78cc98a58e8
diff --git a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface_test.html b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface_test.html
index 766da84..8efe77d 100644
--- a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface_test.html
@@ -45,6 +45,7 @@
});
element = fixture('basic');
errorStub = sinon.stub(console, 'error');
+ Gerrit._setPluginsCount(1);
Gerrit.install(function(p) { plugin = p; }, '0.1',
'http://test.com/plugins/testplugin/static/test.js');
});
@@ -75,10 +76,7 @@
test('showchange event', function(done) {
var testChange = {
_number: 42,
- revisions: {
- def: {_number: 2},
- abc: {_number: 1},
- },
+ revisions: {def: {_number: 2}, abc: {_number: 1}},
};
plugin.on(element.EventType.SHOW_CHANGE, throwErrFn);
plugin.on(element.EventType.SHOW_CHANGE, function(change, revision) {
@@ -91,6 +89,24 @@
{change: testChange, patchNum: 1});
});
+ test('handleEvent awaits plugins load', function(done) {
+ var testChange = {
+ _number: 42,
+ revisions: {def: {_number: 2}, abc: {_number: 1}},
+ };
+ var spy = sinon.spy();
+ Gerrit._setPluginsCount(1);
+ plugin.on(element.EventType.SHOW_CHANGE, spy);
+ element.handleEvent(element.EventType.SHOW_CHANGE,
+ {change: testChange, patchNum: 1});
+ assert.isFalse(spy.called);
+ Gerrit._setPluginsCount(0);
+ flush(function() {
+ assert.isTrue(spy.called);
+ done();
+ });
+ });
+
test('comment event', function(done) {
var testCommentNode = {foo: 'bar'};
plugin.on(element.EventType.COMMENT, throwErrFn);
@@ -185,7 +201,7 @@
});
test('_arePluginsLoaded', function() {
- assert.isFalse(Gerrit._arePluginsLoaded());
+ assert.isTrue(Gerrit._arePluginsLoaded());
Gerrit._setPluginsCount(1);
assert.isFalse(Gerrit._arePluginsLoaded());
Gerrit._setPluginsCount(0);