Skip to content

Commit

Permalink
test: show more info on failure in test-cli-syntax-require.js
Browse files Browse the repository at this point in the history
Use spawnSyncAndExit() to show more info when the tes fails.

PR-URL: nodejs#49561
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Ruy Adorno <ruyadorno@google.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Nitzan Uziely <linkgoron@gmail.com>
  • Loading branch information
joyeecheung committed Sep 12, 2023
1 parent 668437c commit b45e196
Showing 1 changed file with 15 additions and 22 deletions.
37 changes: 15 additions & 22 deletions test/sequential/test-cli-syntax-require.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
'use strict';

const common = require('../common');
require('../common');
const assert = require('assert');
const { spawn } = require('child_process');
const { spawnSyncAndExit } = require('../common/child_process');
const fixtures = require('../common/fixtures');

const node = process.execPath;
Expand All @@ -17,25 +17,18 @@ const syntaxErrorRE = /^SyntaxError: \b/m;
const preloadFile = fixtures.path('no-wrapper.js');
const file = fixtures.path('syntax', 'illegal_if_not_wrapped.js');
const args = [requireFlag, preloadFile, checkFlag, file];
const cp = spawn(node, args);

// No stdout should be produced
cp.stdout.on('data', common.mustNotCall('stdout data event'));

const stderrBuffer = [];
cp.stderr.on('data', (chunk) => stderrBuffer.push(chunk));

cp.on('exit', common.mustCall((code, signal) => {
assert.strictEqual(code, 1);
assert.strictEqual(signal, null);

const stderr = Buffer.concat(stderrBuffer).toString('utf-8');
// stderr should have a syntax error message
assert.match(stderr, syntaxErrorRE);

// stderr should include the filename
assert(stderr.startsWith(file), `${stderr} starts with ${file}`);
}));

spawnSyncAndExit(node, args, {
status: 1,
signal: null,
trim: true,
stdout: '',
stderr(output) {
// stderr should have a syntax error message
assert.match(output, syntaxErrorRE);

// stderr should include the filename
assert(output.startsWith(file), `${output} starts with ${file}`);
}
});
});
});

0 comments on commit b45e196

Please sign in to comment.