From 054c7a76a4bfe0460e00bf5bb227850515cc41d8 Mon Sep 17 00:00:00 2001 From: Hiroyasu Nishiyama Date: Fri, 20 Jul 2018 18:28:49 +0900 Subject: [PATCH] update test for file node for new output port --- test/nodes/core/storage/50-file_spec.js | 223 ++++++++++++++---------- 1 file changed, 132 insertions(+), 91 deletions(-) diff --git a/test/nodes/core/storage/50-file_spec.js b/test/nodes/core/storage/50-file_spec.js index f6eb41d56..9f0c48761 100644 --- a/test/nodes/core/storage/50-file_spec.js +++ b/test/nodes/core/storage/50-file_spec.js @@ -53,75 +53,143 @@ describe('file Nodes', function() { }); it('should write to a file', function(done) { - var flow = [{id:"fileNode1", type:"file", name: "fileNode", "filename":fileToTest, "appendNewline":false, "overwriteFile":true}]; + var flow = [{id:"fileNode1", type:"file", name: "fileNode", "filename":fileToTest, "appendNewline":false, "overwriteFile":true, wires: [["helperNode1"]]}, + {id:"helperNode1", type:"helper"}]; helper.load(fileNode, flow, function() { var n1 = helper.getNode("fileNode1"); - n1.emit("input", {payload:"test"}); - setTimeout(function() { + var n2 = helper.getNode("helperNode1"); + n2.on("input", function(msg) { var f = fs.readFileSync(fileToTest); f.should.have.length(4); fs.unlinkSync(fileToTest); + msg.should.have.property("payload", "test"); done(); - },wait); + }); + n1.receive({payload:"test"}); }); }); it('should append to a file and add newline', function(done) { - var flow = [{id:"fileNode1", type:"file", name: "fileNode", "filename":fileToTest, "appendNewline":true, "overwriteFile":false}]; + var flow = [{id:"fileNode1", type:"file", name: "fileNode", "filename":fileToTest, "appendNewline":true, "overwriteFile":false, wires: [["helperNode1"]]}, + {id:"helperNode1", type:"helper"}]; try { fs.unlinkSync(fileToTest); - }catch(err) {} + } catch(err) { + } helper.load(fileNode, flow, function() { var n1 = helper.getNode("fileNode1"); - n1.emit("input", {payload:"test2"}); // string + var n2 = helper.getNode("helperNode1"); + var count = 0; + var data = ["test2", true, 999, [2]]; + + n2.on("input", function (msg) { + msg.should.have.property("payload", data[count]); + if (count === 3) { + var f = fs.readFileSync(fileToTest).toString(); + if (os.type() !== "Windows_NT") { + f.should.have.length(19); + f.should.equal("test2\ntrue\n999\n[2]\n"); + } + else { + f.should.have.length(23); + f.should.equal("test2\r\ntrue\r\n999\r\n[2]\r\n"); + } + done(); + } + count++; + }); + + n1.receive({payload:"test2"}); // string setTimeout(function() { - n1.emit("input", {payload:true}); // boolean + n1.receive({payload:true}); // boolean },30); setTimeout(function() { - n1.emit("input", {payload:999}); // number + n1.receive({payload:999}); // number },60); setTimeout(function() { - n1.emit("input", {payload:[2]}); // object (array) + n1.receive({payload:[2]}); // object (array) },90); - setTimeout(function() { - var f = fs.readFileSync(fileToTest).toString(); - if (os.type() !== "Windows_NT") { - f.should.have.length(19); - f.should.equal("test2\ntrue\n999\n[2]\n"); - } - else { - f.should.have.length(23); - f.should.equal("test2\r\ntrue\r\n999\r\n[2]\r\n"); - } - done(); - },wait); }); }); it('should append to a file after it has been deleted ', function(done) { - var flow = [{id:"fileNode1", type:"file", name: "fileNode", "filename":fileToTest, "appendNewline":false, "overwriteFile":false}]; + var flow = [{id:"fileNode1", type:"file", name: "fileNode", "filename":fileToTest, "appendNewline":false, "overwriteFile":false, wires: [["helperNode1"]]}, + {id:"helperNode1", type:"helper"}]; try { fs.unlinkSync(fileToTest); - } catch(err) {} + } catch(err) { + } helper.load(fileNode, flow, function() { var n1 = helper.getNode("fileNode1"); - // Send two messages to the file - n1.emit("input", {payload:"one"}); - n1.emit("input", {payload:"two"}); - setTimeout(function() { + var n2 = helper.getNode("helperNode1"); + var data = ["one", "two", "three", "four"]; + var count = 0; + + n2.on("input", function (msg) { + msg.should.have.property("payload", data[count]); try { - // Check they got appended as expected - var f = fs.readFileSync(fileToTest).toString(); - f.should.equal("onetwo"); + if (count === 1) { + // Check they got appended as expected + var f = fs.readFileSync(fileToTest).toString(); + f.should.equal("onetwo"); - // Delete the file - fs.unlinkSync(fileToTest); + // Delete the file + fs.unlinkSync(fileToTest); + setTimeout(function() { + // Send two more messages to the file + n1.receive({payload:"three"}); + n1.receive({payload:"four"}); + }, wait); + } + if (count === 3) { + var f = fs.readFileSync(fileToTest).toString(); + f.should.equal("threefour"); + fs.unlinkSync(fileToTest); + done(); + } + } catch(err) { + done(err); + } + count++; + }); + + // Send two messages to the file + n1.receive({payload:"one"}); + n1.receive({payload:"two"}); + }); + }); - // Send two more messages to the file - n1.emit("input", {payload:"three"}); - n1.emit("input", {payload:"four"}); + it('should append to a file after it has been recreated ', function(done) { + var flow = [{id:"fileNode1", type:"file", name: "fileNode", "filename":fileToTest, "appendNewline":false, "overwriteFile":false, wires: [["helperNode1"]]}, + {id:"helperNode1", type:"helper"}]; + try { + fs.unlinkSync(fileToTest); + } catch(err) { + } + helper.load(fileNode, flow, function() { + var n1 = helper.getNode("fileNode1"); + var n2 = helper.getNode("helperNode1"); + var data = ["one", "two", "three", "four"]; + var count = 0; + + n2.on("input", function (msg) { + try { + msg.should.have.property("payload", data[count]); + if (count == 1) { + // Check they got appended as expected + var f = fs.readFileSync(fileToTest).toString(); + f.should.equal("onetwo"); - setTimeout(function() { + if (os.type() === "Windows_NT") { + var dummyFile = path.join(resourcesDir,"50-file-test-dummy.txt"); + fs.rename(fileToTest, dummyFile, function() { + recreateTest(n1, dummyFile); + }); + } else { + recreateTest(n1, fileToTest); + } + } + if (count == 3) { // Check the file was updated try { var f = fs.readFileSync(fileToTest).toString(); @@ -131,42 +199,16 @@ describe('file Nodes', function() { } catch(err) { done(err); } - },wait); - } catch(err) { - done(err); - } - },wait); - }); - }); - - it('should append to a file after it has been recreated ', function(done) { - var flow = [{id:"fileNode1", type:"file", name: "fileNode", "filename":fileToTest, "appendNewline":false, "overwriteFile":false}]; - try { - fs.unlinkSync(fileToTest); - } catch(err) {} - helper.load(fileNode, flow, function() { - var n1 = helper.getNode("fileNode1"); - // Send two messages to the file - n1.emit("input", {payload:"one"}); - n1.emit("input", {payload:"two"}); - setTimeout(function() { - try { - // Check they got appended as expected - var f = fs.readFileSync(fileToTest).toString(); - f.should.equal("onetwo"); - - if (os.type() === "Windows_NT") { - var dummyFile = path.join(resourcesDir,"50-file-test-dummy.txt"); - fs.rename(fileToTest, dummyFile, function() { - recreateTest(n1, dummyFile); - }); - } else { - recreateTest(n1, fileToTest); } } catch(err) { done(err); } - },wait); + count++; + }); + + // Send two messages to the file + n1.receive({payload:"one"}); + n1.receive({payload:"two"}); }); function recreateTest(n1, fileToDelete) { @@ -177,30 +219,23 @@ describe('file Nodes', function() { fs.writeFileSync(fileToTest,""); // Send two more messages to the file - n1.emit("input", {payload:"three"}); - n1.emit("input", {payload:"four"}); - - setTimeout(function() { - // Check the file was updated - try { - var f = fs.readFileSync(fileToTest).toString(); - f.should.equal("threefour"); - fs.unlinkSync(fileToTest); - done(); - } catch(err) { - done(err); - } - },wait); + n1.receive({payload:"three"}); + n1.receive({payload:"four"}); } }); it('should use msg.filename if filename not set in node', function(done) { - var flow = [{id:"fileNode1", type:"file", name: "fileNode", "appendNewline":true, "overwriteFile":true}]; + var flow = [{id:"fileNode1", type:"file", name: "fileNode", "appendNewline":true, "overwriteFile":true, wires: [["helperNode1"]]}, + {id:"helperNode1", type:"helper"}]; helper.load(fileNode, flow, function() { var n1 = helper.getNode("fileNode1"); - n1.emit("input", {payload:"fine", filename:fileToTest}); - setTimeout(function() { + var n2 = helper.getNode("helperNode1"); + + n2.on("input", function (msg) { + msg.should.have.property("payload", "fine"); + msg.should.have.property("filename", fileToTest); + var f = fs.readFileSync(fileToTest).toString(); if (os.type() !== "Windows_NT") { f.should.have.length(5); @@ -211,16 +246,20 @@ describe('file Nodes', function() { f.should.equal("fine\r\n"); } done(); - },wait); + }); + + n1.receive({payload:"fine", filename:fileToTest}); }); }); it('should be able to delete the file', function(done) { - var flow = [{id:"fileNode1", type:"file", name: "fileNode", "filename":fileToTest, "appendNewline":false, "overwriteFile":"delete"}]; + var flow = [{id:"fileNode1", type:"file", name: "fileNode", "filename":fileToTest, "appendNewline":false, "overwriteFile":"delete", wires: [["helperNode1"]]}, + {id:"helperNode1", type:"helper"}]; helper.load(fileNode, flow, function() { var n1 = helper.getNode("fileNode1"); - n1.emit("input", {payload:"fine"}); - setTimeout(function() { + var n2 = helper.getNode("helperNode1"); + + n2.on("input", function (msg) { try { var f = fs.readFileSync(fileToTest).toString(); f.should.not.equal("fine"); @@ -230,7 +269,9 @@ describe('file Nodes', function() { e.code.should.equal("ENOENT"); done(); } - },wait); + }); + + n1.receive({payload:"fine"}); }); });