From 013af7619e6aa69ba4a19ecd25e36545b2a091a0 Mon Sep 17 00:00:00 2001 From: Steve-Mcl Date: Sat, 16 Apr 2022 17:13:54 +0100 Subject: [PATCH] add tests - fix 2 issues found when developing tests :) --- .../@node-red/nodes/core/storage/10-file.js | 3 +- test/nodes/core/storage/10-file_spec.js | 60 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/packages/node_modules/@node-red/nodes/core/storage/10-file.js b/packages/node_modules/@node-red/nodes/core/storage/10-file.js index c475ff844..8556b9544 100644 --- a/packages/node_modules/@node-red/nodes/core/storage/10-file.js +++ b/packages/node_modules/@node-red/nodes/core/storage/10-file.js @@ -39,7 +39,7 @@ module.exports = function(RED) { // Write/delete a file RED.nodes.createNode(this,n); this.filename = n.filename; - this.filenameType = n.filenameTpye; + this.filenameType = n.filenameType; this.appendNewline = n.appendNewline; this.overwriteFile = n.overwriteFile.toString(); this.createDir = n.createDir || false; @@ -77,6 +77,7 @@ module.exports = function(RED) { } }); filename = filename || ""; + msg.filename = filename; var fullFilename = filename; if (filename && RED.settings.fileWorkingDirectory && !path.isAbsolute(filename)) { fullFilename = path.resolve(path.join(RED.settings.fileWorkingDirectory,filename)); diff --git a/test/nodes/core/storage/10-file_spec.js b/test/nodes/core/storage/10-file_spec.js index 99ed23978..9d5aa033f 100644 --- a/test/nodes/core/storage/10-file_spec.js +++ b/test/nodes/core/storage/10-file_spec.js @@ -48,6 +48,7 @@ describe('file Nodes', function() { beforeEach(function(done) { //fs.writeFileSync(fileToTest, "File message line 1\File message line 2\n"); + process.env.TEST_FILE = fileToTest; helper.startServer(done); }); @@ -58,6 +59,7 @@ describe('file Nodes', function() { //fs.unlinkSync(fileToTest); helper.stopServer(done); }); + delete process.env.TEST_FILE }); it('should be loaded', function(done) { @@ -343,6 +345,64 @@ describe('file Nodes', function() { n1.receive({payload:"fine", filename:fileToTest}); }); }); + it('should use msg._user_specified_filename set in nodes typedInput', function(done) { + var flow = [{id:"fileNode1", type:"file", filename:"_user_specified_filename", filenameType: "msg", name: "fileNode", "appendNewline":true, "overwriteFile":true, wires: [["helperNode1"]]}, + {id:"helperNode1", type:"helper"}]; + helper.load(fileNode, flow, function() { + var n1 = helper.getNode("fileNode1"); + var n2 = helper.getNode("helperNode1"); + + n2.on("input", function (msg) { + try { + msg.should.have.property("payload", "typedInput"); + msg.should.have.property("filename", fileToTest); + + var f = fs.readFileSync(fileToTest).toString(); + if (os.type() !== "Windows_NT") { + f.should.equal("typedInput\n"); + } + else { + f.should.equal("typedInput\r\n"); + } + done(); + } + catch (e) { + done(e); + } + }); + + n1.receive({payload:"typedInput", _user_specified_filename:fileToTest}); + }); + }); + it('should use env.TEST_FILE set in nodes typedInput', function(done) { + var flow = [{id:"fileNode1", type:"file", filename:"TEST_FILE", filenameType: "env", name: "fileNode", "appendNewline":true, "overwriteFile":true, wires: [["helperNode1"]]}, + {id:"helperNode1", type:"helper"}]; + helper.load(fileNode, flow, function() { + var n1 = helper.getNode("fileNode1"); + var n2 = helper.getNode("helperNode1"); + + n2.on("input", function (msg) { + try { + msg.should.have.property("payload", "envTest"); + msg.should.have.property("filename", fileToTest); + + var f = fs.readFileSync(fileToTest).toString(); + if (os.type() !== "Windows_NT") { + f.should.equal("envTest\n"); + } + else { + f.should.equal("envTest\r\n"); + } + done(); + } + catch (e) { + done(e); + } + }); + + n1.receive({payload:"envTest"}); + }); + }); it('should be able to delete the file', function(done) { var flow = [{id:"fileNode1", type:"file", name: "fileNode", "filename":fileToTest, "appendNewline":false, "overwriteFile":"delete", wires: [["helperNode1"]]},