From d7b3e86096ec7b2d8d04c0694294187d021b926f Mon Sep 17 00:00:00 2001 From: Mark Hindess Date: Wed, 30 Jul 2014 10:28:25 +0100 Subject: [PATCH 1/2] Test Node send for req/res behaviour. --- test/red/nodes/Node_spec.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/red/nodes/Node_spec.js b/test/red/nodes/Node_spec.js index 763cf64b3..7f0758d2f 100644 --- a/test/red/nodes/Node_spec.js +++ b/test/red/nodes/Node_spec.js @@ -204,6 +204,26 @@ describe('Node', function() { n1.send(messages); }); + it('emits messages without cloning req or res', function(done) { + var n1 = new RedNode({id:'n1',type:'abc',wires:[['n2']]}); + var n2 = new RedNode({id:'n2',type:'abc'}); + + var req = {}; + var res = {}; + var cloned = {}; + var message = {payload: "foo", cloned: cloned, req: req, res: res}; + + n2.on('input',function(msg) { + should.deepEqual(msg, message); + msg.cloned.should.not.be.exactly(message.cloned); + msg.req.should.be.exactly(message.req); + msg.res.should.be.exactly(message.res); + done(); + }); + + n1.send(message); + }); + }); describe('#log', function() { From bbdfa03687c36177fbea4c2ba27c5e7f2de08e87 Mon Sep 17 00:00:00 2001 From: Mark Hindess Date: Wed, 30 Jul 2014 10:39:48 +0100 Subject: [PATCH 2/2] Test Node status method. --- test/red/nodes/Node_spec.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/red/nodes/Node_spec.js b/test/red/nodes/Node_spec.js index 7f0758d2f..0445a9d3b 100644 --- a/test/red/nodes/Node_spec.js +++ b/test/red/nodes/Node_spec.js @@ -15,7 +15,9 @@ **/ var should = require("should"); +var sinon = require('sinon'); var RedNode = require("../../../red/nodes/Node"); +var comms = require('../../../red/comms'); describe('Node', function() { describe('#constructor',function() { @@ -274,4 +276,19 @@ describe('Node', function() { }); }); + describe('#status', function() { + it('publishes status', function(done) { + var n = new RedNode({id:'123',type:'abc'}); + var status = {fill:"green",shape:"dot",text:"connected"}; + sinon.stub(comms, 'publish', function(topic, message, retain) { + topic.should.equal('status/123'); + message.should.equal(status); + retain.should.be.true; + done(); + }); + + n.status(status); + }); + }); + });