Skip to content

Commit

Permalink
test: reorder test files fixtures for better understanding
Browse files Browse the repository at this point in the history
PR-URL: #48787
Backport-PR-URL: #49225
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
  • Loading branch information
rluvaton authored and UlisesGascon committed Sep 10, 2023
1 parent 3dbc61c commit 25e967a
Show file tree
Hide file tree
Showing 10 changed files with 45 additions and 25 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
24 changes: 10 additions & 14 deletions test/parallel/test-runner-cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ const testFixtures = fixtures.path('test-runner');
{
// Default behavior. node_modules is ignored. Files that don't match the
// pattern are ignored except in test/ directories.
const args = ['--test', testFixtures];
const child = spawnSync(process.execPath, args);
const args = ['--test'];
const child = spawnSync(process.execPath, args, { cwd: join(testFixtures, 'default-behavior') });

assert.strictEqual(child.status, 1);
assert.strictEqual(child.signal, null);
Expand All @@ -39,8 +39,8 @@ const testFixtures = fixtures.path('test-runner');

{
// Same but with a prototype mutation in require scripts.
const args = ['--require', join(testFixtures, 'protoMutation.js'), '--test', testFixtures];
const child = spawnSync(process.execPath, args);
const args = ['--require', join(testFixtures, 'protoMutation.js'), '--test'];
const child = spawnSync(process.execPath, args, { cwd: join(testFixtures, 'default-behavior') });

const stdout = child.stdout.toString();
assert.match(stdout, /ok 1 - this should pass/);
Expand All @@ -56,23 +56,19 @@ const testFixtures = fixtures.path('test-runner');

{
// User specified files that don't match the pattern are still run.
const args = ['--test', testFixtures, join(testFixtures, 'index.js')];
const child = spawnSync(process.execPath, args);
const args = ['--test', join(testFixtures, 'index.js')];
const child = spawnSync(process.execPath, args, { cwd: testFixtures });

assert.strictEqual(child.status, 1);
assert.strictEqual(child.signal, null);
assert.strictEqual(child.stderr.toString(), '');
const stdout = child.stdout.toString();
assert.match(stdout, /not ok 1 - .+index\.js/);
assert.match(stdout, /ok 2 - this should pass/);
assert.match(stdout, /not ok 3 - this should fail/);
assert.match(stdout, /ok 4 - .+subdir.+subdir_test\.js/);
assert.match(stdout, /ok 5 - this should pass/);
}

{
// Searches node_modules if specified.
const args = ['--test', join(testFixtures, 'node_modules')];
const args = ['--test', join(testFixtures, 'default-behavior/node_modules')];
const child = spawnSync(process.execPath, args);

assert.strictEqual(child.status, 1);
Expand All @@ -85,7 +81,7 @@ const testFixtures = fixtures.path('test-runner');
{
// The current directory is used by default.
const args = ['--test'];
const options = { cwd: testFixtures };
const options = { cwd: join(testFixtures, 'default-behavior') };
const child = spawnSync(process.execPath, args, options);

assert.strictEqual(child.status, 1);
Expand Down Expand Up @@ -124,7 +120,7 @@ const testFixtures = fixtures.path('test-runner');
// Test combined stream outputs
const args = [
'--test',
'test/fixtures/test-runner/index.test.js',
'test/fixtures/test-runner/default-behavior/index.test.js',
'test/fixtures/test-runner/nested.js',
'test/fixtures/test-runner/invalid-tap.js',
];
Expand Down Expand Up @@ -202,7 +198,7 @@ const testFixtures = fixtures.path('test-runner');
const args = ['--no-warnings',
'--experimental-loader', 'data:text/javascript,',
'--require', fixtures.path('empty.js'),
'--test', join(testFixtures, 'index.test.js')];
'--test', join(testFixtures, 'default-behavior', 'index.test.js')];
const child = spawnSync(process.execPath, args);

assert.strictEqual(child.stderr.toString(), '');
Expand Down
5 changes: 4 additions & 1 deletion test/parallel/test-runner-exit-code.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ if (process.argv[2] === 'child') {
assert.strictEqual(child.status, 0);
assert.strictEqual(child.signal, null);

child = spawnSync(process.execPath, ['--test', fixtures.path('test-runner', 'subdir', 'subdir_test.js')]);
child = spawnSync(process.execPath, [
'--test',
fixtures.path('test-runner', 'default-behavior', 'subdir', 'subdir_test.js'),
]);
assert.strictEqual(child.status, 0);
assert.strictEqual(child.signal, null);

Expand Down
6 changes: 5 additions & 1 deletion test/parallel/test-runner-inspect.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,11 @@ common.skipIfInspectorDisabled();
tmpdir.refresh();

{
const child = new NodeInstance(['--test', '--inspect-brk=0'], undefined, fixtures.path('test-runner/index.test.js'));
const child = new NodeInstance(
['--test', '--inspect-brk=0'],
undefined,
fixtures.path('test-runner/default-behavior/index.test.js')
);

let stdout = '';
let stderr = '';
Expand Down
35 changes: 26 additions & 9 deletions test/parallel/test-runner-run.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,20 @@ describe('require(\'node:test\').run', { concurrency: true }, () => {
});

it('should succeed with a file', async () => {
const stream = run({ files: [join(testFixtures, 'test/random.cjs')] });
const stream = run({ files: [join(testFixtures, 'default-behavior/test/random.cjs')] });
stream.on('test:fail', common.mustNotCall());
stream.on('test:pass', common.mustCall(1));
// eslint-disable-next-line no-unused-vars
for await (const _ of stream);
});

it('should run same file twice', async () => {
const stream = run({ files: [join(testFixtures, 'test/random.cjs'), join(testFixtures, 'test/random.cjs')] });
const stream = run({
files: [
join(testFixtures, 'default-behavior/test/random.cjs'),
join(testFixtures, 'default-behavior/test/random.cjs'),
]
});
stream.on('test:fail', common.mustNotCall());
stream.on('test:pass', common.mustCall(2));
// eslint-disable-next-line no-unused-vars
Expand Down Expand Up @@ -68,7 +73,9 @@ describe('require(\'node:test\').run', { concurrency: true }, () => {
});

it('should be piped with dot', async () => {
const result = await run({ files: [join(testFixtures, 'test/random.cjs')] }).compose(dot).toArray();
const result = await run({
files: [join(testFixtures, 'default-behavior/test/random.cjs')]
}).compose(dot).toArray();
assert.deepStrictEqual(result, [
'.',
'\n',
Expand All @@ -77,15 +84,19 @@ describe('require(\'node:test\').run', { concurrency: true }, () => {

it('should be piped with spec', async () => {
const specReporter = new spec();
const result = await run({ files: [join(testFixtures, 'test/random.cjs')] }).compose(specReporter).toArray();
const result = await run({
files: [join(testFixtures, 'default-behavior/test/random.cjs')]
}).compose(specReporter).toArray();
const stringResults = result.map((bfr) => bfr.toString());
assert.match(stringResults[0], /this should pass/);
assert.match(stringResults[1], /tests 1/);
assert.match(stringResults[1], /pass 1/);
});

it('should be piped with tap', async () => {
const result = await run({ files: [join(testFixtures, 'test/random.cjs')] }).compose(tap).toArray();
const result = await run({
files: [join(testFixtures, 'default-behavior/test/random.cjs')]
}).compose(tap).toArray();
assert.strictEqual(result.length, 13);
assert.strictEqual(result[0], 'TAP version 13\n');
assert.strictEqual(result[1], '# Subtest: this should pass\n');
Expand All @@ -103,15 +114,21 @@ describe('require(\'node:test\').run', { concurrency: true }, () => {
});

it('should skip tests not matching testNamePatterns - RegExp', async () => {
const result = await run({ files: [join(testFixtures, 'test/skip_by_name.cjs')], testNamePatterns: [/executed/] })
const result = await run({
files: [join(testFixtures, 'default-behavior/test/skip_by_name.cjs')],
testNamePatterns: [/executed/]
})
.compose(tap)
.toArray();
assert.strictEqual(result[2], 'ok 1 - this should be skipped # SKIP test name does not match pattern\n');
assert.strictEqual(result[5], 'ok 2 - this should be executed\n');
});

it('should skip tests not matching testNamePatterns - string', async () => {
const result = await run({ files: [join(testFixtures, 'test/skip_by_name.cjs')], testNamePatterns: ['executed'] })
const result = await run({
files: [join(testFixtures, 'default-behavior/test/skip_by_name.cjs')],
testNamePatterns: ['executed']
})
.compose(tap)
.toArray();
assert.strictEqual(result[2], 'ok 1 - this should be skipped # SKIP test name does not match pattern\n');
Expand All @@ -121,7 +138,7 @@ describe('require(\'node:test\').run', { concurrency: true }, () => {
it('should emit "test:watch:drained" event on watch mode', async () => {
const controller = new AbortController();
await run({
files: [join(testFixtures, 'test/random.cjs')],
files: [join(testFixtures, 'default-behavior/test/random.cjs')],
watch: true,
signal: controller.signal,
}).on('data', function({ type }) {
Expand All @@ -135,7 +152,7 @@ describe('require(\'node:test\').run', { concurrency: true }, () => {
it('should stop watch mode when abortSignal aborts', async () => {
const controller = new AbortController();
const result = await run({
files: [join(testFixtures, 'test/random.cjs')],
files: [join(testFixtures, 'default-behavior/test/random.cjs')],
watch: true,
signal: controller.signal,
})
Expand Down

0 comments on commit 25e967a

Please sign in to comment.