diff --git a/src/test/log-stream-test.js b/src/test/log-stream-test.js new file mode 100644 index 000000000..b86eb63a9 --- /dev/null +++ b/src/test/log-stream-test.js @@ -0,0 +1,29 @@ +/* global it:false */ +/* global describe:false */ + +'use strict'; + +const expect = require('expect.js'), + fs = require('fs'), + LogStream = require('../log-stream.js'), + stream = require('stream'); + +describe('log stream', function () { + it('can create stream', function (done) { + fs.writeFileSync('/tmp/test-input.log', '2022-10-09T15:19:48.740Z message', 'utf8'); + const input = fs.createReadStream('/tmp/test-input.log'); + const log = new LogStream({ format: 'json', source: 'test' }); + const output = fs.createWriteStream('/tmp/test-output.log'); + + stream.pipeline(input, log, output, function (error) { + expect(error).to.not.be.ok(); + + const out = fs.readFileSync('/tmp/test-output.log', 'utf8'); + const firstLine = JSON.parse(out.split('\n')[0]); + expect(firstLine.realtimeTimestamp).to.be.a('number'); + expect(firstLine.message).to.be('message'); + expect(firstLine.source).to.be('test'); + done(); + }); + }); +}); diff --git a/src/test/progress-stream-test.js b/src/test/progress-stream-test.js new file mode 100644 index 000000000..099141c41 --- /dev/null +++ b/src/test/progress-stream-test.js @@ -0,0 +1,25 @@ +/* global it:false */ +/* global describe:false */ + +'use strict'; + +const expect = require('expect.js'), + fs = require('fs'), + ProgressStream = require('../progress-stream.js'), + stream = require('stream'); + +describe('progress stream', function () { + it('can create stream', function (done) { + const input = fs.createReadStream(`${__dirname}/progress-stream-test.js`); + const progress = new ProgressStream({ interval: 1000 }); + const output = fs.createWriteStream('/dev/null'); + + stream.pipeline(input, progress, output, function (error) { + expect(error).to.not.be.ok(); + const size = fs.statSync(`${__dirname}/progress-stream-test.js`).size; + expect(progress._transferred).to.be(size); + + done(); + }); + }); +});