diff options
Diffstat (limited to 'dgbuilder/test/nodes/core/core/58-debug_spec.js')
-rw-r--r-- | dgbuilder/test/nodes/core/core/58-debug_spec.js | 298 |
1 files changed, 0 insertions, 298 deletions
diff --git a/dgbuilder/test/nodes/core/core/58-debug_spec.js b/dgbuilder/test/nodes/core/core/58-debug_spec.js deleted file mode 100644 index f83fc2ca..00000000 --- a/dgbuilder/test/nodes/core/core/58-debug_spec.js +++ /dev/null @@ -1,298 +0,0 @@ -/** - * Copyright 2014 IBM Corp. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - **/ - -var should = require("should"); -var debugNode = require("../../../../nodes/core/core/58-debug.js"); -var helper = require("../../helper.js"); -var WebSocket = require('ws'); - -describe('debug node', function() { - - before(function(done) { - helper.startServer(done); - }); - - afterEach(function() { - helper.unload(); - }); - - - it('should be loaded', function(done) { - var flow = [{id:"n1", type:"debug", name: "Debug" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - n1.should.have.property('name', 'Debug'); - done(); - }); - }); - - it('should publish on input', function(done) { - var flow = [{id:"n1", type:"debug", name: "Debug" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function() { - n1.emit("input", {payload:"test"}); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug",data:{id:"n1",name:"Debug",msg:"test"} - }); - }, done); - }); - }); - - it('should publish to console', function(done) { - var flow = [{id:"n1", type:"debug", console: "true" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - var count = 0; - n1.on('log', function(msg) { - msg.should.eql({level:'log',id:'n1',type:'debug',msg:'test'}); - count++; - if (count == 2) { - done(); - } - }); - websocket_test(function() { - n1.emit("input", {payload:"test"}); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug",data:{id:"n1",msg:"test"} - }); - count++; - }, function() { - if (count == 2) { - done(); - } - }); - }); - }); - - it('should publish complete message', function(done) { - var flow = [{id:"n1", type:"debug", complete: "true" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function() { - n1.emit("input", {payload:"test"}); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug", - data:{id:"n1",msg:'(Object) {\n "payload": "test"\n}'} - }); - }, done); - }); - }); - - it('should publish an Error', function(done) { - var flow = [{id:"n1", type:"debug" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function() { - n1.emit("input", {payload: new Error("oops")}); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug",data:{id:"n1",msg:"Error: oops"} - }); - }, done); - }); - }); - - it('should publish a boolean', function(done) { - var flow = [{id:"n1", type:"debug" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function() { - n1.emit("input", {payload: true}); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug",data:{id:"n1",msg: '(boolean) true'} - }); - }, done); - }); - }); - - it('should publish with no payload', function(done) { - var flow = [{id:"n1", type:"debug" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function() { - n1.emit("input", {}); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug",data:{id:"n1",msg: '(undefined)'} - }); - }, done); - }); - }); - - it('should publish an object', function(done) { - var flow = [{id:"n1", type:"debug" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function() { - n1.emit("input", {payload: {type:'foo'}}); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug", - data:{id:"n1",msg:'(Object) {\n "type": "foo"\n}'} - }); - }, done); - }); - }); - - it('should publish an array', function(done) { - var flow = [{id:"n1", type:"debug" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function() { - n1.emit("input", {payload: [0,1,2,3]}); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug", - data:{id:"n1",msg: '(Array) [\n 0,\n 1,\n 2,\n 3\n]'} - }); - }, done); - }); - }); - - it('should publish an object with circular references', function(done) { - var flow = [{id:"n1", type:"debug" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function() { - var o = { name: 'bar' }; - o.o = o; - n1.emit("input", {payload: o}); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug", - data:{ - id:"n1", - msg:'(Object) {\n "name": "bar",\n "o": "[circular]"\n}' - } - }); - }, done); - }); - }); - - it('should truncated a long message', function(done) { - var flow = [{id:"n1", type:"debug" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function() { - n1.emit("input", {payload: Array(1002).join("X")}); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug", - data:{ - id:"n1", - msg: Array(1001).join("X")+' ....' - } - }); - }, done); - }); - }); - - it('should convert Buffer to hex', function(done) { - var flow = [{id:"n1", type:"debug" }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function() { - n1.emit("input", {payload: new Buffer('HELLO', 'utf8')}); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug", - data:{ - id:"n1", - msg: '(Buffer) 48454c4c4f', - } - }); - }, done); - }); - }); - - it('should publish when active', function(done) { - var flow = [{id:"n1", type:"debug", active: false }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function() { - n1.emit("input", {payload:"message 1"}); - helper.request() - .post('/debug/n1/enable') - .expect(200).end(function(err) { - if (err) { return done(err); } - n1.emit("input", {payload:"message 2"}); - }); - }, function(msg) { - JSON.parse(msg).should.eql({ - topic:"debug",data:{id:"n1",msg:"message 2"} - }); - }, done); - }); - }); - - it('should not publish when inactive', function(done) { - var flow = [{id:"n1", type:"debug", active: true }]; - helper.load(debugNode, flow, function() { - var n1 = helper.getNode("n1"); - websocket_test(function(close) { - helper.request() - .post('/debug/n1/disable') - .expect(201).end(function(err) { - if (err) { - close(); - return done(err); - } - n1.emit("input", {payload:"message"}); - setTimeout(function() { - close(); - done(); - }, 200); - }); - }, function(msg) { - should.fail(null,null,"unexpected message"); - }, function() {}); - }); - }); - - describe('post', function() { - it('should return 404 on invalid state', function(done) { - var flow = [{id:"n1", type:"debug", active: true }]; - helper.load(debugNode, flow, function() { - helper.request() - .post('/debug/n1/foobar') - .expect(404).end(done); - }); - }); - - it('should return 404 on invalid node', function(done) { - helper.request() - .post('/debug/n99/enable') - .expect(404).end(done); - }); - }); - -}); - -function websocket_test(open_callback, message_callback, done_callback) { - var ws = new WebSocket(helper.url() + "/comms"); - var close_callback = function() { ws.close(); }; - ws.on('open', function() { open_callback(close_callback); }); - ws.on('message', function(msg) { - message_callback(msg, close_callback); - ws.close(); - done_callback(); - }); -} |