summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2018-07-16 20:54:39 +0200
committerAndrej Mihajlov <and@mullvad.net>2018-07-16 20:54:39 +0200
commit508fc0775e62f9361df2814cad5229b7706d4095 (patch)
tree055ad745e22cb3b1cbbe91571d57a08070d4a525 /test
parent8e219adbcc3523badf5a0351ca4a8e91596b4114 (diff)
parent313d3bf47cd3cc91bc34143deaa930d4bbea14ce (diff)
downloadmullvadvpn-508fc0775e62f9361df2814cad5229b7706d4095.tar.xz
mullvadvpn-508fc0775e62f9361df2814cad5229b7706d4095.zip
Merge branch 'add-eslint-promises'
Diffstat (limited to 'test')
-rw-r--r--test/jsonrpc-transport.spec.js97
-rw-r--r--test/setup/renderer.js2
2 files changed, 36 insertions, 63 deletions
diff --git a/test/jsonrpc-transport.spec.js b/test/jsonrpc-transport.spec.js
index 124bba8f00..1f36be83a6 100644
--- a/test/jsonrpc-transport.spec.js
+++ b/test/jsonrpc-transport.spec.js
@@ -19,7 +19,7 @@ describe('JSON RPC transport', () => {
server.close();
});
- it('should send as soon as the websocket connects', (done) => {
+ it('should send as soon as the websocket connects', () => {
server.on('message', (msg) => {
const { payload } = jsonrpc.parse(msg);
@@ -28,19 +28,14 @@ describe('JSON RPC transport', () => {
}
});
- transport
- .send('hello')
- .then(() => {
- done();
- })
- .catch((error) => {
- done(error);
- });
+ const sendPromise = transport.send('hello');
transport.connect(WEBSOCKET_URL);
+
+ return expect(sendPromise).to.eventually.be.fulfilled;
});
- it('should reject failed jsonrpc requests', (done) => {
+ it('should reject failed jsonrpc requests', () => {
server.on('message', (msg) => {
const { payload } = jsonrpc.parse(msg);
@@ -53,17 +48,11 @@ describe('JSON RPC transport', () => {
}
});
- transport.send('invalid-method').catch((error) => {
- try {
- expect(error.code).to.equal(-32601);
- expect(error.message).to.contain('Method not found');
- done();
- } catch (error) {
- done(error);
- }
- });
+ const sendPromise = transport.send('invalid-method');
transport.connect(WEBSOCKET_URL);
+
+ return expect(sendPromise).to.eventually.be.rejectedWith('Method not found');
});
it('should route reply to correct promise', () => {
@@ -75,44 +64,29 @@ describe('JSON RPC transport', () => {
}
});
- const decoy = transport
- .send('a decoy', [], 100)
- .then(() => {
- throw new Error('Should not be called');
- })
- .catch((error) => {
- expect(error).to.be.an.instanceof(JsonRpcTransportTimeOutError);
- });
-
- const message = transport.send('a message', [], 100).then((reply) => {
- expect(reply).to.equal('a reply');
- });
+ const decoyPromise = transport.send('a decoy', [], 100);
+ const messagePromise = transport.send('a message', [], 100);
transport.connect(WEBSOCKET_URL);
- return Promise.all([message, decoy]);
+ return Promise.all([
+ expect(messagePromise).to.eventually.be.equal('a reply'),
+ expect(decoyPromise).to.eventually.be.rejectedWith(JsonRpcTransportTimeOutError),
+ ]);
});
- it('should timeout if no response is returned', (done) => {
- transport
- .send('timeout-message', {}, 1)
- .then(() => {
- done(new Error('Should not be called'));
- })
- .catch((error) => {
- try {
- expect(error).to.be.an.instanceof(JsonRpcTransportTimeOutError);
- expect(error.message).to.contain('Request timed out');
- done();
- } catch (error) {
- done(error);
- }
- });
+ it('should timeout if no response is returned', () => {
+ const sendPromise = transport.send('timeout-message', {}, 1);
transport.connect(WEBSOCKET_URL);
+
+ return expect(sendPromise).to.eventually.be.rejectedWith(
+ JsonRpcTransportTimeOutError,
+ 'Request timed out',
+ );
});
- it('should route notifications', (done) => {
+ it('should route notifications', () => {
server.on('message', (msg) => {
const { payload } = jsonrpc.parse(msg);
@@ -121,24 +95,21 @@ describe('JSON RPC transport', () => {
}
});
- transport
- .subscribe('event', (event) => {
- try {
- expect(event).to.equal('an event!');
- done();
- } catch (error) {
- done(error);
- }
- })
- .then(() => {
+ transport.connect(WEBSOCKET_URL);
+
+ let subscribePromise;
+ const eventPromise = new Promise((resolve) => {
+ subscribePromise = transport.subscribe('event', resolve).then((value) => {
server.send(
- JSON.stringify(jsonrpc.notification('event', { subscription: 1, result: 'an event!' })),
+ JSON.stringify(jsonrpc.notification('event', { subscription: 1, result: 'beacon' })),
);
- })
- .catch((error) => {
- done(error);
+ return value;
});
+ });
- transport.connect(WEBSOCKET_URL);
+ return Promise.all([
+ expect(subscribePromise).to.eventually.be.fulfilled,
+ expect(eventPromise).to.eventually.be.equal('beacon'),
+ ]);
});
});
diff --git a/test/setup/renderer.js b/test/setup/renderer.js
index acfa87b7ed..a1bd11a4d8 100644
--- a/test/setup/renderer.js
+++ b/test/setup/renderer.js
@@ -2,8 +2,10 @@ const Enzyme = require('enzyme');
const Adapter = require('enzyme-adapter-react-16');
const chai = require('chai');
const spies = require('chai-spies');
+const chaiAsPromised = require('chai-as-promised');
chai.use(spies);
+chai.use(chaiAsPromised);
Enzyme.configure({
adapter: new Adapter(),