Implement self.get and self.post from Gerrit JS API
https://gerrit-review.googlesource.com/Documentation/js-api.html#self_get
https://gerrit-review.googlesource.com/Documentation/js-api.html#self_post
Feature: Issue 5960
Change-Id: I6778f40ba1d6d8b2b31ebb51ffd39a6fab265424
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 c3013bd..40810b1 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
@@ -36,6 +36,8 @@
let plugin;
let errorStub;
let sandbox;
+ let getResponseObjectStub;
+ let sendStub;
const throwErrFn = function() {
throw Error('Unfortunately, this handler has stopped');
@@ -43,10 +45,16 @@
setup(() => {
sandbox = sinon.sandbox.create();
+ getResponseObjectStub = sandbox.stub().returns(Promise.resolve());
+ sendStub = sandbox.stub().returns(Promise.resolve());
stub('gr-rest-api-interface', {
getAccount() {
return Promise.resolve({name: 'Judy Hopps'});
},
+ getResponseObject: getResponseObjectStub,
+ send(...args) {
+ return sendStub(...args);
+ },
});
element = fixture('basic');
errorStub = sandbox.stub(console, 'error');
@@ -67,6 +75,27 @@
'http://test.com/plugins/testplugin/static/test.js');
});
+ test('get', done => {
+ const response = {foo: 'foo'};
+ getResponseObjectStub.returns(Promise.resolve(response));
+ plugin.get('/url', r => {
+ assert.isTrue(sendStub.calledWith('GET', '/url'));
+ assert.strictEqual(r, response);
+ done();
+ });
+ });
+
+ test('post', done => {
+ const payload = {foo: 'foo'};
+ const response = {bar: 'bar'};
+ getResponseObjectStub.returns(Promise.resolve(response));
+ plugin.post('/url', payload, r => {
+ assert.isTrue(sendStub.calledWith('POST', '/url', payload));
+ assert.strictEqual(r, response);
+ done();
+ });
+ });
+
test('history event', done => {
plugin.on(element.EventType.HISTORY, throwErrFn);
plugin.on(element.EventType.HISTORY, path => {