modify read log util and make a single test pass by adding blocking code

This commit is contained in:
daemon1024
2021-03-12 22:08:06 +00:00
parent a8ae036077
commit f5a6ceae62
2 changed files with 27 additions and 16 deletions

View File

@@ -3,26 +3,35 @@ const cli = require('../../src/cli');
const stdout = require('./util/readConsole').stdout; const stdout = require('./util/readConsole').stdout;
const stderr = require('./util/readConsole').stderr; const stderr = require('./util/readConsole').stderr;
test('testing steps parsing', async function (t) { function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
t.plan(2); test('testing steps parsing', function (t) {
t.plan(1);
let out = stdout.read(); let out = stdout.read();
await cli([
cli([
'node', 'test', 'node', 'test',
'-i', 'examples/images/test.png', '-i', 'examples/images/test.png',
'-s', 'invert', '-s', 'invert',
]); ]);
out.restore();
t.false(out.output.includes('Added Step "invert"'), 'Steps parsed successfully'); sleep(1000).then(() => {
out.restore();
let validator = out.output().includes('Added Step "invert"');
t.true(validator, 'Steps parsed successfully');
});
let err = stderr.read(); // let err = stderr.read();
await cli([ // await cli([
'node', 'test', // 'node', 'test',
'-i', 'examples/images/test.png', // '-i', 'examples/images/test.png',
'-s', 'invalidStep', // '-s', 'invalidStep',
]); // ]);
err.restore(); // err.restore();
t.equal(err.output, 'Please ensure all steps are valid.'); // t.equal(err.output, 'Please ensure all steps are valid.');
}); });

View File

@@ -4,16 +4,18 @@ function ReadLog(stream) {
ReadLog.prototype.read = function(options) { ReadLog.prototype.read = function(options) {
let output = []; let output = '';
let stream = this._stream; let stream = this._stream;
let originalStreamWrite = stream.write; let originalStreamWrite = stream.write;
stream.write = function(string) { stream.write = function(string) {
output.push(string); output += string;
}; };
return { return {
output: output, output: function () {
return output;
},
restore: function() { restore: function() {
stream.write = originalStreamWrite; stream.write = originalStreamWrite;
} }