-
-
Notifications
You must be signed in to change notification settings - Fork 33.5k
test_runner: fix global before not called when no global test exists #48877
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
2969867
99786ae
5b2c5d6
6c5a5af
f2c551c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,84 @@ | ||
| 'use strict'; | ||
| const { test, describe, it, before, after, beforeEach, afterEach } = require('node:test'); | ||
| const assert = require("assert"); | ||
|
|
||
| // This file should not have any global tests to reproduce bug #48844 | ||
| const testArr = []; | ||
|
|
||
| before(() => testArr.push('global before')); | ||
| after(() => { | ||
| testArr.push('global after'); | ||
|
|
||
| try { | ||
| assert.deepStrictEqual(testArr, [ | ||
| 'global before', | ||
| 'describe before', | ||
|
|
||
| 'describe beforeEach', | ||
| 'describe it 1', | ||
| 'describe afterEach', | ||
|
|
||
| 'describe beforeEach', | ||
| 'describe test 2', | ||
| 'describe afterEach', | ||
|
|
||
| 'describe nested before', | ||
|
|
||
| 'describe beforeEach', | ||
| 'describe nested beforeEach', | ||
| 'describe nested it 1', | ||
| 'describe afterEach', | ||
| 'describe nested afterEach', | ||
|
Comment on lines
+30
to
+31
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. it seems really weird that we executing top describe There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I see #48736 (comment) also talked about |
||
|
|
||
| 'describe beforeEach', | ||
| 'describe nested beforeEach', | ||
| 'describe nested test 2', | ||
| 'describe afterEach', | ||
| 'describe nested afterEach', | ||
|
|
||
| 'describe nested after', | ||
| 'describe after', | ||
| 'global after', | ||
| ]); | ||
| } catch (e) { | ||
| // TODO(rluvaton): remove the try catch after #48867 is fixed | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. because of #48867 we must use |
||
| console.error(e); | ||
| process.exit(1); | ||
| } | ||
| }); | ||
|
|
||
| describe('describe hooks with no global tests', () => { | ||
| before(() => { | ||
| testArr.push('describe before'); | ||
| }); | ||
| after(()=> { | ||
| testArr.push('describe after'); | ||
| }); | ||
| beforeEach(() => { | ||
| testArr.push('describe beforeEach'); | ||
| }); | ||
| afterEach(() => { | ||
| testArr.push('describe afterEach'); | ||
| }); | ||
|
|
||
| it('1', () => testArr.push('describe it 1')); | ||
| test('2', () => testArr.push('describe test 2')); | ||
|
|
||
| describe('nested', () => { | ||
| before(() => { | ||
| testArr.push('describe nested before') | ||
| }); | ||
| after(() => { | ||
| testArr.push('describe nested after') | ||
| }); | ||
| beforeEach(() => { | ||
| testArr.push('describe nested beforeEach') | ||
| }); | ||
| afterEach(() => { | ||
| testArr.push('describe nested afterEach') | ||
| }); | ||
|
|
||
| it('nested 1', () => testArr.push('describe nested it 1')); | ||
| test('nested 2', () => testArr.push('describe nested test 2')); | ||
| }); | ||
| }); | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| TAP version 13 | ||
| # Subtest: describe hooks with no global tests | ||
| # Subtest: 1 | ||
| ok 1 - 1 | ||
| --- | ||
| duration_ms: * | ||
| ... | ||
| # Subtest: 2 | ||
| ok 2 - 2 | ||
| --- | ||
| duration_ms: * | ||
| ... | ||
| # Subtest: nested | ||
| # Subtest: nested 1 | ||
| ok 1 - nested 1 | ||
| --- | ||
| duration_ms: * | ||
| ... | ||
| # Subtest: nested 2 | ||
| ok 2 - nested 2 | ||
| --- | ||
| duration_ms: * | ||
| ... | ||
| 1..2 | ||
| ok 3 - nested | ||
| --- | ||
| duration_ms: * | ||
| type: 'suite' | ||
| ... | ||
| 1..3 | ||
| ok 1 - describe hooks with no global tests | ||
| --- | ||
| duration_ms: * | ||
| type: 'suite' | ||
| ... | ||
| 1..1 | ||
| # tests 4 | ||
| # suites 2 | ||
| # pass 4 | ||
| # fail 0 | ||
| # cancelled 0 | ||
| # skipped 0 | ||
| # todo 0 | ||
| # duration_ms * |
Uh oh!
There was an error while loading. Please reload this page.