Skip to content

Commit 391ff0d

Browse files
MoLowjuanarbol
authored andcommitted
test_runner: allow nesting test within describe
PR-URL: #46544 Backport-PR-URL: #46839Fixes: #46478 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 4f5aff2 commit 391ff0d

4 files changed

Lines changed: 76 additions & 62 deletions

File tree

‎lib/internal/test_runner/harness.js‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,8 @@ function getGlobalRoot() {
165165
}
166166

167167
functiontest(name,options,fn){
168-
constsubtest=getGlobalRoot().createSubtest(Test,name,options,fn);
168+
constparent=testResources.get(executionAsyncId())||getGlobalRoot();
169+
constsubtest=parent.createSubtest(Test,name,options,fn);
169170
returnsubtest.start();
170171
}
171172

‎test/message/test_runner_describe_it.js‎

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
'use strict';
33
require('../common');
44
constassert=require('node:assert');
5-
const{ describe, it }=require('node:test');
5+
const{ describe, it, test}=require('node:test');
66
constutil=require('util');
77

88

@@ -41,6 +41,8 @@ it('async pass', async () => {
4141

4242
});
4343

44+
test('mixing describe/it and test should work',()=>{});
45+
4446
it('async throw fail',async()=>{
4547
thrownewError('thrown from async throw fail');
4648
});
@@ -95,6 +97,7 @@ describe('subtest sync throw fail', () => {
9597
it('+sync throw fail',()=>{
9698
thrownewError('thrown from subtest sync throw fail');
9799
});
100+
test('mixing describe/it and test should work',()=>{});
98101
});
99102

100103
it('sync throw non-error fail',async()=>{
@@ -106,7 +109,7 @@ describe('level 0a', { concurrency: 4 }, () => {
106109
constp1a=newPromise((resolve)=>{
107110
setTimeout(()=>{
108111
resolve();
109-
},1000);
112+
},100);
110113
});
111114

112115
returnp1a;
@@ -124,7 +127,7 @@ describe('level 0a', { concurrency: 4 }, () => {
124127
constp1c=newPromise((resolve)=>{
125128
setTimeout(()=>{
126129
resolve();
127-
},2000);
130+
},200);
128131
});
129132

130133
returnp1c;
@@ -134,7 +137,7 @@ describe('level 0a', { concurrency: 4 }, () => {
134137
constp1c=newPromise((resolve)=>{
135138
setTimeout(()=>{
136139
resolve();
137-
},1500);
140+
},150);
138141
});
139142

140143
returnp1c;
@@ -143,7 +146,7 @@ describe('level 0a', { concurrency: 4 }, () => {
143146
constp0a=newPromise((resolve)=>{
144147
setTimeout(()=>{
145148
resolve();
146-
},3000);
149+
},300);
147150
});
148151

149152
returnp0a;
@@ -309,12 +312,12 @@ describe('describe async throw fails', async () => {
309312
describe('timeouts',()=>{
310313
it('timed out async test',{timeout: 5},async()=>{
311314
returnnewPromise((resolve)=>{
312-
setTimeout(resolve,1000);
315+
setTimeout(resolve,100);
313316
});
314317
});
315318

316319
it('timed out callback test',{timeout: 5},(done)=>{
317-
setTimeout(done,1000);
320+
setTimeout(done,100);
318321
});
319322

320323

0 commit comments

Comments
 (0)