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
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
  • Loading branch information
cjihrig authored Mar 18, 2024
1 parent 6f4d601 commit 4ba9f45
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 8 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 @@ -984,7 +984,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 @@ -66,6 +66,16 @@ describe('no', function() {
});
});

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

describe('maybe', function() {
it('no', () => {});
it('yes', () => {});
});
});

describe('DescribeForMatchWithAncestors', () => {
it('NestedTest', () => common.mustNotCall());

Expand Down
48 changes: 41 additions & 7 deletions test/fixtures/test-runner/output/name_pattern.snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,40 @@ ok 15 - no
duration_ms: *
type: 'suite'
...
# 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'
...
# Subtest: DescribeForMatchWithAncestors
# Subtest: NestedTest
ok 1 - NestedTest # SKIP test name does not match pattern
Expand All @@ -190,7 +224,7 @@ ok 15 - no
type: 'suite'
...
1..2
ok 16 - DescribeForMatchWithAncestors
ok 17 - DescribeForMatchWithAncestors
---
duration_ms: *
type: 'suite'
Expand All @@ -202,17 +236,17 @@ ok 16 - DescribeForMatchWithAncestors
duration_ms: *
...
1..1
ok 17 - DescribeForMatchWithAncestors
ok 18 - DescribeForMatchWithAncestors
---
duration_ms: *
type: 'suite'
...
1..17
# tests 24
# suites 13
# pass 14
1..18
# tests 28
# suites 15
# pass 16
# fail 0
# cancelled 0
# skipped 10
# skipped 12
# todo 0
# duration_ms *

0 comments on commit 4ba9f45

Please sign in to comment.