From 72227b763177b90f01bb7ea42d3915c89dd0302b Mon Sep 17 00:00:00 2001 From: Marten Biehl Date: Wed, 20 Feb 2019 11:39:20 +0100 Subject: [PATCH 1/2] =?UTF-8?q?test:=20=F0=9F=92=8D=20Encoder/Decoder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add tests that show that encoder and decoder are not working --- test/mqttletoad.spec.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/test/mqttletoad.spec.js b/test/mqttletoad.spec.js index 38b1356..91191a6 100644 --- a/test/mqttletoad.spec.js +++ b/test/mqttletoad.spec.js @@ -150,6 +150,44 @@ describe('mqttletoad', function() { }); describe('decoders & encoders', function() { + let port, broker; + beforeEach(async function() { + port = await getPort(); + broker = await createBroker({port}); + }); + + describe('built-in', function() { + it('should publish objects as json', async function(done) { + let payload = {bar: 'baz'}; + broker.transformers.publish = packet => { + expect( + packet.payload.toString(), + 'to equal', + JSON.stringify(payload) + ); + expect(JSON.parse(packet.payload.toString()), 'to equal', payload); + done(); + }; + let client = await connect(`mqtt://localhost:${port}`, { + encoder: 'json' + }); + client.publish('foo', payload); + }); + + it('should receive parsed json', async function(done) { + let payload = {bar: 'baz'}; + let client = await connect(`mqtt://localhost:${port}`, { + encoder: 'json', + decoder: 'json' + }); + await client.subscribe('foo', message => { + expect(typeof message, 'to be', 'object'); + expect(message, 'to be', payload); + done(); + }); + client.publish('foo', payload); + }); + }); it('should handle custom encoders and decoders'); }); From 13a9a794e309d6f4ff701535d9cf9dc7f4d4a6ff Mon Sep 17 00:00:00 2001 From: Marten Biehl Date: Sat, 27 Apr 2019 13:44:52 +0200 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Tests=20failing=20due?= =?UTF-8?q?=20to=20rejected=20promises?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rejected promises were not handled and therefore all tests failed --- test/mqttletoad.spec.js | 67 +++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 26 deletions(-) diff --git a/test/mqttletoad.spec.js b/test/mqttletoad.spec.js index 91191a6..111824c 100644 --- a/test/mqttletoad.spec.js +++ b/test/mqttletoad.spec.js @@ -38,8 +38,13 @@ describe('mqttletoad', function() { broker = await createBroker({mitm: true}); }); - it('should connect without port nor path', async function() { - client = await expect(connect({mitm: true}), 'to be fulfilled'); + it('should connect without port nor path', async function(done) { + try { + client = await expect(connect({mitm: true}), 'to be fulfilled'); + } catch (error) { + console.error(error); + done(); + } }); }); @@ -158,34 +163,44 @@ describe('mqttletoad', function() { describe('built-in', function() { it('should publish objects as json', async function(done) { - let payload = {bar: 'baz'}; - broker.transformers.publish = packet => { - expect( - packet.payload.toString(), - 'to equal', - JSON.stringify(payload) - ); - expect(JSON.parse(packet.payload.toString()), 'to equal', payload); - done(); - }; - let client = await connect(`mqtt://localhost:${port}`, { - encoder: 'json' - }); - client.publish('foo', payload); + try { + let payload = {bar: 'baz'}; + broker.transformers.publish = packet => { + expect( + packet.payload.toString(), + 'to equal', + JSON.stringify(payload) + ); + expect(JSON.parse(packet.payload.toString()), 'to equal', payload); + done(); + }; + let client = await connect(`mqtt://localhost:${port}`, { + encoder: 'json' + }); + client.publish('foo', payload); + } catch (error) { + console.error(error); + } }); it('should receive parsed json', async function(done) { - let payload = {bar: 'baz'}; - let client = await connect(`mqtt://localhost:${port}`, { - encoder: 'json', - decoder: 'json' - }); - await client.subscribe('foo', message => { - expect(typeof message, 'to be', 'object'); - expect(message, 'to be', payload); + try { + let payload = {bar: 'baz'}; + let client = await connect(`mqtt://localhost:${port}`, { + encoder: 'json', + decoder: 'json' + }); + await client.subscribe('foo', message => { + expect(typeof message, 'to be', 'object'); + expect(message, 'to be', payload); + done(); + }); + client.publish('foo', payload); + } catch (error) { + console.error(error); + expect(false, 'to be', true); done(); - }); - client.publish('foo', payload); + } }); }); it('should handle custom encoders and decoders');