Skip to content

Commit 1fc8307

Browse files
Trottdanielleadams
authored andcommitted
test: re-implement promises.setInterval() test robustly
Fixes: #37226 PR-URL: #37230 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
1 parent 15804e0 commit 1fc8307

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

‎test/parallel/test-timers-promisified.js‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,34 @@ process.on('multipleResolves', common.mustNotCall());
348348
assert.strictEqual(loopCount,5);
349349
}));
350350
}
351+
352+
{
353+
// Check that if we abort when we have some unresolved callbacks,
354+
// we actually call them.
355+
constcontroller=newAbortController();
356+
const{ signal }=controller;
357+
constdelay=10;
358+
lettotalIterations=0;
359+
consttimeoutLoop=runInterval(async(iterationNumber)=>{
360+
awaitsetTimeout(delay*4);
361+
if(iterationNumber<=2){
362+
assert.strictEqual(signal.aborted,false);
363+
}
364+
if(iterationNumber===2){
365+
controller.abort();
366+
}
367+
if(iterationNumber>2){
368+
assert.strictEqual(signal.aborted,true);
369+
}
370+
if(iterationNumber>totalIterations){
371+
totalIterations=iterationNumber;
372+
}
373+
},delay,signal);
374+
375+
timeoutLoop.catch(common.mustCall(()=>{
376+
assert.ok(totalIterations>=3,`iterations was ${totalIterations} < 3`);
377+
}));
378+
}
351379
}
352380

353381
{

0 commit comments

Comments
 (0)