Skip to content

Commit

Permalink
test_runner: ignore todo flag when running suites
Browse files Browse the repository at this point in the history
This commit removes a check for the todo flag when determining
if a suite should run. In general, the todo flag should have
no impact on whether or not a test/suite runs. Instead, it should
only impact how the result of the test/suite is handled.

PR-URL: #52117
Backport-PR-URL: #53093
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
  • Loading branch information
cjihrig authored and marco-ippolito committed May 23, 2024
1 parent f5cd125 commit b7bc635
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 6 deletions.
2 changes: 1 addition & 1 deletion lib/internal/test_runner/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -952,7 +952,7 @@ class Suite extends Test {
constructor(options) {
super(options);

if (testNamePatterns !== null && !options.skip && !options.todo) {
if (testNamePatterns !== null && !options.skip) {
this.fn = options.fn || this.fn;
this.skipped = false;
}
Expand Down
10 changes: 10 additions & 0 deletions test/fixtures/test-runner/output/name_pattern.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,13 @@ describe('no', function() {
it('yes', () => {});
});
});

describe('no with todo', { todo: true }, () => {
it('no', () => {});
it('yes', () => {});

describe('maybe', function() {
it('no', () => {});
it('yes', () => {});
});
});
44 changes: 39 additions & 5 deletions test/fixtures/test-runner/output/name_pattern.snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -171,12 +171,46 @@ ok 15 - no
duration_ms: *
type: 'suite'
...
1..15
# tests 21
# suites 10
# pass 13
# Subtest: no with todo
# Subtest: no
ok 1 - no # SKIP test name does not match pattern
---
duration_ms: *
...
# Subtest: yes
ok 2 - yes
---
duration_ms: *
...
# Subtest: maybe
# Subtest: no
ok 1 - no # SKIP test name does not match pattern
---
duration_ms: *
...
# Subtest: yes
ok 2 - yes
---
duration_ms: *
...
1..2
ok 3 - maybe
---
duration_ms: *
type: 'suite'
...
1..3
ok 16 - no with todo # TODO test name does not match pattern
---
duration_ms: *
type: 'suite'
...
1..16
# tests 25
# suites 12
# pass 15
# fail 0
# cancelled 0
# skipped 8
# skipped 10
# todo 0
# duration_ms *

0 comments on commit b7bc635

Please sign in to comment.