Skip to content
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: decrease duration of test-cli-syntax #14187

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 36 additions & 31 deletions test/parallel/test-cli-syntax.js
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

const common = require('../common');
const assert = require('assert');
const spawnSync = require('child_process').spawnSync;
const {exec, spawnSync} = require('child_process');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

space inside the curly braces #14162

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that a lint rule? If so, when did that change?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that a lint rule? If so, when did that change?

about to land...

const path = require('path');

const node = process.execPath;
@@ -29,12 +29,13 @@ const notFoundRE = /^Error: Cannot find module/m;
// loop each possible option, `-c` or `--check`
syntaxArgs.forEach(function(args) {
const _args = args.concat(file);
const c = spawnSync(node, _args, {encoding: 'utf8'});

// no output should be produced
assert.strictEqual(c.stdout, '', 'stdout produced');
assert.strictEqual(c.stderr, '', 'stderr produced');
assert.strictEqual(c.status, 0, `code === ${c.status}`);
const cmd = [node, ..._args].join(' ');
exec(cmd, common.mustCall((err, stdout, stderr) => {
assert.ifError(err);
assert.strictEqual(stdout, '', 'stdout produced');
assert.strictEqual(stderr, '', 'stderr produced');
}));
});
});

@@ -50,18 +51,20 @@ const notFoundRE = /^Error: Cannot find module/m;
// loop each possible option, `-c` or `--check`
syntaxArgs.forEach(function(args) {
const _args = args.concat(file);
const c = spawnSync(node, _args, {encoding: 'utf8'});
const cmd = [node, ..._args].join(' ');
exec(cmd, common.mustCall((err, stdout, stderr) => {
assert.strictEqual(err instanceof Error, true);
assert.strictEqual(err.code, 1, `code === ${err.code}`);

// no stdout should be produced
assert.strictEqual(c.stdout, '', 'stdout produced');
// no stdout should be produced
assert.strictEqual(stdout, '', 'stdout produced');

// stderr should include the filename
assert(c.stderr.startsWith(file), "stderr doesn't start with the filename");
// stderr should have a syntax error message
assert(syntaxErrorRE.test(stderr), 'stderr incorrect');

// stderr should have a syntax error message
assert(syntaxErrorRE.test(c.stderr), 'stderr incorrect');

assert.strictEqual(c.status, 1, `code === ${c.status}`);
// stderr should include the filename
assert(stderr.startsWith(file), "stderr doesn't start with the filename");
}));
});
});

@@ -75,15 +78,16 @@ const notFoundRE = /^Error: Cannot find module/m;
// loop each possible option, `-c` or `--check`
syntaxArgs.forEach(function(args) {
const _args = args.concat(file);
const c = spawnSync(node, _args, {encoding: 'utf8'});

// no stdout should be produced
assert.strictEqual(c.stdout, '', 'stdout produced');
const cmd = [node, ..._args].join(' ');
exec(cmd, common.mustCall((err, stdout, stderr) => {
// no stdout should be produced
assert.strictEqual(stdout, '', 'stdout produced');

// stderr should have a module not found error message
assert(notFoundRE.test(c.stderr), 'stderr incorrect');
// stderr should have a module not found error message
assert(notFoundRE.test(stderr), 'stderr incorrect');

assert.strictEqual(c.status, 1, `code === ${c.status}`);
assert.strictEqual(err.code, 1, `code === ${err.code}`);
}));
});
});

@@ -122,14 +126,15 @@ syntaxArgs.forEach(function(args) {
['-c', '--check'].forEach(function(checkFlag) {
['-e', '--eval'].forEach(function(evalFlag) {
const args = [checkFlag, evalFlag, 'foo'];
const c = spawnSync(node, args, {encoding: 'utf8'});

assert(
c.stderr.startsWith(
`${node}: either --check or --eval can be used, not both`
)
);

assert.strictEqual(c.status, 9, `code === ${c.status}`);
const cmd = [node, ...args].join(' ');
exec(cmd, common.mustCall((err, stdout, stderr) => {
assert.strictEqual(err instanceof Error, true);
assert.strictEqual(err.code, 9, `code === ${err.code}`);
assert(
stderr.startsWith(
`${node}: either --check or --eval can be used, not both`
)
);
}));
});
});