-
Notifications
You must be signed in to change notification settings - Fork 210
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test cli steps parsing #1833
base: main
Are you sure you want to change the base?
test cli steps parsing #1833
Changes from 2 commits
f6949c9
73b4937
a8ae036
f5a6cea
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||
---|---|---|---|---|
@@ -0,0 +1,28 @@ | ||||
const test = require('tape'); | ||||
const cli = require('../../src/cli'); | ||||
const stdout = require('./util/readConsole').stdout; | ||||
const stderr = require('./util/readConsole').stderr; | ||||
|
||||
test('testing steps parsing', async function (t) { | ||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is it worth running it without async first to just see if the issue is related just to that? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. and we're sure tape does async? I believe tape is pretty minimal so it may be worth looking in the tape docs. Also, i notice the package.json config pipes the output to tape-spec, do we need to do that? Just wondering if you've tried that. Trying to get as close to the existing version as we can to diagnose the issues. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Line 15 in 3b8181a
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Tape works in async though it still fails, apparently cli function doesn't return a promise so there's no point of async/await anyway.
It's just a prettified/formatted output of the tape report, it shouldn't interfere with the output. But I tried it out without it and I am still facing same issues :( |
||||
|
||||
t.plan(2); | ||||
|
||||
let out = stdout.read(); | ||||
await cli([ | ||||
'node', 'test', | ||||
'-i', 'examples/images/test.png', | ||||
'-s', 'invert', | ||||
]); | ||||
out.restore(); | ||||
t.false(out.output.includes('Added Step "invert"'), 'Steps parsed successfully'); | ||||
|
||||
|
||||
let err = stderr.read(); | ||||
await cli([ | ||||
'node', 'test', | ||||
'-i', 'examples/images/test.png', | ||||
'-s', 'invalidStep', | ||||
]); | ||||
err.restore(); | ||||
t.equal(err.output, 'Please ensure all steps are valid.'); | ||||
}); |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
function ReadLog(stream) { | ||
this._stream = stream; | ||
} | ||
|
||
ReadLog.prototype.read = function(options) { | ||
|
||
let output = []; | ||
let stream = this._stream; | ||
|
||
let originalStreamWrite = stream.write; | ||
stream.write = function(string) { | ||
output.push(string); | ||
}; | ||
|
||
return { | ||
output: output, | ||
restore: function() { | ||
stream.write = originalStreamWrite; | ||
} | ||
}; | ||
}; | ||
|
||
exports.stdout = new ReadLog(process.stdout); | ||
exports.stderr = new ReadLog(process.stderr); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This all looks ok, compared to
image-sequencer/test/cli/saveSequence.js
Lines 1 to 2 in 3b8181a