Skip to content

Commit

Permalink
test_runner: fix todo and only in spec reporter
Browse files Browse the repository at this point in the history
  • Loading branch information
MoLow committed Jul 26, 2023
1 parent 6cd6789 commit fe46cc8
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 60 deletions.
16 changes: 11 additions & 5 deletions lib/internal/test_runner/reporter/spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,17 +64,24 @@ class SpecReporter extends Transform {
), `\n${indent} `);
return `\n${indent} ${message}\n`;
}
#formatTestReport(type, data, prefix = '', indent = '', hasChildren = false, skippedSubtest = false) {
#formatTestReport(type, data, prefix = '', indent = '', hasChildren = false) {
let color = colors[type] ?? white;
let symbol = symbols[type] ?? ' ';
const { skip, todo } = data;
const duration_ms = data.details?.duration_ms ? ` ${gray}(${data.details.duration_ms}ms)${white}` : '';
const title = `${data.name}${duration_ms}${skippedSubtest ? ' # SKIP' : ''}`;
let title = `${data.name}${duration_ms}`;

if (skip !== undefined) {
title += ` # ${typeof skip === 'string' && skip.length ? skip : 'SKIP'}`;
} else if (todo !== undefined) {
title += ` # ${typeof todo === 'string' && todo.length ? todo : 'TODO'}`;
}
if (hasChildren) {
// If this test has had children - it was already reported, so slightly modify the output
return `${prefix}${indent}${color}${symbols['arrow:right']}${white}${title}\n`;
}
const error = this.#formatError(data.details?.error, indent);
if (skippedSubtest) {
if (skip !== undefined || todo !== undefined) {
color = gray;
symbol = symbols['hyphen:minus'];
}
Expand All @@ -101,9 +108,8 @@ class SpecReporter extends Transform {
ArrayPrototypeShift(this.#reported);
hasChildren = true;
}
const skippedSubtest = subtest && data.skip && data.skip !== undefined;
const indent = this.#indent(data.nesting);
return `${this.#formatTestReport(type, data, prefix, indent, hasChildren, skippedSubtest)}\n`;
return `${this.#formatTestReport(type, data, prefix, indent, hasChildren)}\n`;
}
#handleEvent({ type, data }) {
switch (type) {
Expand Down
2 changes: 1 addition & 1 deletion lib/internal/test_runner/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ class Test extends AsyncResource {
skip = '\'only\' option not set';
}

if (skip) {
if (skip || todo) {
fn = noop;
}

Expand Down
10 changes: 5 additions & 5 deletions test/fixtures/test-runner/output/describe_it.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ it.todo('sync pass todo', () => {
it('sync pass todo with message', { todo: 'this is a passing todo' }, () => {
});

it.todo('sync fail todo', () => {
throw new Error('thrown from sync fail todo');
it.todo('sync todo', () => {
throw new Error('should not be thrown');
});

it('sync fail todo with message', { todo: 'this is a failing todo' }, () => {
throw new Error('thrown from sync fail todo with message');
it('sync todo with message', { todo: 'this is a failing todo' }, () => {
throw new Error('should not be thrown');
});

it.skip('sync skip pass', () => {
Expand All @@ -44,7 +44,7 @@ it('async pass', async () => {
test('mixing describe/it and test should work', () => {});

it('async throw fail', async () => {
throw new Error('thrown from async throw fail');
throw new Error('should not be thrown');
});

it('async skip fail', async (t, done) => {
Expand Down
32 changes: 5 additions & 27 deletions test/fixtures/test-runner/output/describe_it.snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -9,37 +9,15 @@ ok 2 - sync pass todo with message # TODO this is a passing todo
---
duration_ms: *
...
# Subtest: sync fail todo
not ok 3 - sync fail todo # TODO
# Subtest: sync todo
ok 3 - sync todo # TODO
---
duration_ms: *
failureType: 'testCodeFailure'
error: 'thrown from sync fail todo'
code: 'ERR_TEST_FAILURE'
stack: |-
*
*
*
*
*
*
*
...
# Subtest: sync fail todo with message
not ok 4 - sync fail todo with message # TODO this is a failing todo
# Subtest: sync todo with message
ok 4 - sync todo with message # TODO this is a failing todo
---
duration_ms: *
failureType: 'testCodeFailure'
error: 'thrown from sync fail todo with message'
code: 'ERR_TEST_FAILURE'
stack: |-
*
*
*
*
*
*
*
...
# Subtest: sync skip pass
ok 5 - sync skip pass # SKIP
Expand Down Expand Up @@ -92,7 +70,7 @@ not ok 12 - async throw fail
---
duration_ms: *
failureType: 'testCodeFailure'
error: 'thrown from async throw fail'
error: 'should not be thrown'
code: 'ERR_TEST_FAILURE'
stack: |-
*
Expand Down
22 changes: 11 additions & 11 deletions test/fixtures/test-runner/output/spec_reporter.snapshot
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
sync pass todo (*ms)
sync pass todo with message (*ms)
sync fail todo (*ms)
sync pass todo (*ms) # TODO
sync pass todo with message (*ms) # this is a passing todo
sync fail todo (*ms) # TODO
Error: thrown from sync fail todo
*
*
Expand All @@ -10,7 +10,7 @@
*
*

sync fail todo with message (*ms)
sync fail todo with message (*ms) # this is a failing todo
Error: thrown from sync fail todo with message
*
*
Expand All @@ -21,7 +21,7 @@
*

sync skip pass (*ms) # SKIP
sync skip pass with message (*ms) # SKIP
sync skip pass with message (*ms) # this is skipped
sync pass (*ms)
this test should pass
sync throw fail (*ms)
Expand Down Expand Up @@ -130,7 +130,7 @@

invalid subtest - pass but subtest fails (*ms)
sync skip option (*ms) # SKIP
sync skip option with message (*ms) # SKIP
sync skip option with message (*ms) # this is skipped
sync skip option is false fail (*ms)
Error: this should be executed
*
Expand All @@ -151,8 +151,8 @@
functionAndOptions (*ms) # SKIP
escaped description \ # \#\
 (*ms)
escaped skip message (*ms) # SKIP
escaped todo message (*ms)
escaped skip message (*ms) # #skip
escaped todo message (*ms) # #todo
escaped diagnostic (*ms)
#diagnostic
callback pass (*ms)
Expand Down Expand Up @@ -307,7 +307,7 @@

failing tests:

sync fail todo (*ms)
sync fail todo (*ms) # TODO
Error: thrown from sync fail todo
*
*
Expand All @@ -317,7 +317,7 @@
*
*

sync fail todo with message (*ms)
sync fail todo with message (*ms) # this is a failing todo
Error: thrown from sync fail todo with message
*
*
Expand Down Expand Up @@ -347,7 +347,7 @@
*
*

async skip fail (*ms)
async skip fail (*ms) # SKIP
Error: thrown from async throw fail
*
*
Expand Down
22 changes: 11 additions & 11 deletions test/fixtures/test-runner/output/spec_reporter_cli.snapshot
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
sync pass todo (*ms)
sync pass todo with message (*ms)
sync fail todo (*ms)
sync pass todo (*ms) # TODO
sync pass todo with message (*ms) # this is a passing todo
sync fail todo (*ms) # TODO
Error: thrown from sync fail todo
*
*
Expand All @@ -10,7 +10,7 @@
*
*

sync fail todo with message (*ms)
sync fail todo with message (*ms) # this is a failing todo
Error: thrown from sync fail todo with message
*
*
Expand All @@ -21,7 +21,7 @@
*

sync skip pass (*ms) # SKIP
sync skip pass with message (*ms) # SKIP
sync skip pass with message (*ms) # this is skipped
sync pass (*ms)
this test should pass
sync throw fail (*ms)
Expand Down Expand Up @@ -130,7 +130,7 @@

invalid subtest - pass but subtest fails (*ms)
sync skip option (*ms) # SKIP
sync skip option with message (*ms) # SKIP
sync skip option with message (*ms) # this is skipped
sync skip option is false fail (*ms)
Error: this should be executed
*
Expand All @@ -151,8 +151,8 @@
functionAndOptions (*ms) # SKIP
escaped description \ # \#\
 (*ms)
escaped skip message (*ms) # SKIP
escaped todo message (*ms)
escaped skip message (*ms) # #skip
escaped todo message (*ms) # #todo
escaped diagnostic (*ms)
#diagnostic
callback pass (*ms)
Expand Down Expand Up @@ -307,7 +307,7 @@

failing tests:

sync fail todo (*ms)
sync fail todo (*ms) # TODO
Error: thrown from sync fail todo
*
*
Expand All @@ -317,7 +317,7 @@
*
*

sync fail todo with message (*ms)
sync fail todo with message (*ms) # this is a failing todo
Error: thrown from sync fail todo with message
*
*
Expand Down Expand Up @@ -347,7 +347,7 @@
*
*

async skip fail (*ms)
async skip fail (*ms) # SKIP
Error: thrown from async throw fail
*
*
Expand Down

0 comments on commit fe46cc8

Please sign in to comment.