diff --git a/nodes/core/storage/28-tail.js b/nodes/core/storage/28-tail.js index a4bd2dfaf..58c2bd06b 100644 --- a/nodes/core/storage/28-tail.js +++ b/nodes/core/storage/28-tail.js @@ -27,20 +27,27 @@ module.exports = function(RED) { var node = this; var err = ""; + // TODO: rewrite to use node-tail var tail = spawn("tail", ["-F", this.filename]); tail.stdout.on("data", function (data) { - var msg = {topic:node.filename}; if (node.split) { + // TODO: allow customisation of the line break - as we do elsewhere var strings = data.toString().split("\n"); for (var s in strings) { + //TODO: should we really filter blanks? Is that expected? if (strings[s] !== "") { - msg.payload = strings[s]; - node.send(msg); + node.send({ + topic: node.filename, + payload: strings[s] + }); } } } else { - msg.payload = data.toString(); + var msg = { + topic:node.filename, + payload: data.toString() + }; node.send(msg); } }); diff --git a/test/nodes/core/storage/28-tail_spec.js b/test/nodes/core/storage/28-tail_spec.js index 19cd802b7..2586f66cf 100644 --- a/test/nodes/core/storage/28-tail_spec.js +++ b/test/nodes/core/storage/28-tail_spec.js @@ -24,41 +24,16 @@ var helper = require("../../helper.js"); describe('TailNode', function() { - var tempDir = path.join(__dirname, ".tmp"); - var fileToTail = path.join(tempDir, "tailMe.txt"); - - // function which writes to the file creating all missing directories - function writeFile(path, contents) { - mkdirp(tempDir, function(err) { - if(err) { - return err; - } - try { - fs.writeFileSync(path, contents, 'utf8'); - } catch (error) { - console.log("Unexpected error writing file: " +error.message); - return error; - } - }); - } + var resourcesDir = path.join(__dirname,"..","..","..","resources"); + var fileToTail = path.join(resourcesDir,"28-tail-test-file.txt"); beforeEach(function(done) { - writeFile(fileToTail, "Tail message line1\nTail message line2\n"); helper.startServer(done); }); afterEach(function(done) { helper.unload(); - fs.remove(tempDir, function(err) { - if (err) { - console.log("error occurred removing " + tempDir + ": " +err); - return err; - } - fs.exists(tempDir, function(exists) { - exists.should.be.false; - helper.stopServer(done); - }); - }); + helper.stopServer(done); }); it('should be loaded', function(done) { @@ -78,6 +53,7 @@ describe('TailNode', function() { var helperNode1 = helper.getNode("helperNode1"); var inputCounter = 0; helperNode1.on("input", function(msg) { + console.log(msg); msg.should.have.property('topic', fileToTail); msg.payload.should.equal("Tail message line" + (++inputCounter)); if(inputCounter === 2) { diff --git a/test/resources/28-tail-test-file.txt b/test/resources/28-tail-test-file.txt new file mode 100644 index 000000000..59239b931 --- /dev/null +++ b/test/resources/28-tail-test-file.txt @@ -0,0 +1,2 @@ +Tail message line1 +Tail message line2