Skip to content

Commit 01aade6

Browse files
committed
test: add abort test case and check either entire event map or abort listener list
1 parent f8e9b45 commit 01aade6

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

test/parallel/test-events-on-async-iterator.js

+12-4
Original file line numberDiff line numberDiff line change
@@ -379,17 +379,25 @@ async function abortListenerRemovedAfterComplete() {
379379

380380
const i = setInterval(() => ee.emit('foo', 'foo'), 1);
381381
try {
382+
// Below: either the kEvents map is empty or the 'abort' listener list is empty
383+
382384
// Return case
383385
const endedIterator = on(ee, 'foo', { signal: ac.signal });
384-
assert.ok(ac.signal[kEvents].size > 0);
386+
assert.ok(ac.signal[kEvents].get('abort').size > 0);
385387
endedIterator.return();
386-
assert.strictEqual(ac.signal[kEvents].size, 0);
388+
assert.strictEqual(ac.signal[kEvents].get('abort')?.size ?? ac.signal[kEvents].size, 0);
387389

388390
// Throw case
389391
const throwIterator = on(ee, 'foo', { signal: ac.signal });
390-
assert.ok(ac.signal[kEvents].size > 0);
392+
assert.ok(ac.signal[kEvents].get('abort').size > 0);
391393
throwIterator.throw(new Error());
392-
assert.strictEqual(ac.signal[kEvents].size, 0);
394+
assert.strictEqual(ac.signal[kEvents].get('abort')?.size ?? ac.signal[kEvents].size, 0);
395+
396+
// Abort case
397+
on(ee, 'foo', { signal: ac.signal });
398+
assert.ok(ac.signal[kEvents].get('abort').size > 0);
399+
ac.abort(new Error());
400+
assert.strictEqual(ac.signal[kEvents].get('abort')?.size ?? ac.signal[kEvents].size, 0);
393401
} finally {
394402
clearInterval(i);
395403
}

0 commit comments

Comments
 (0)