@@ -33,6 +33,25 @@ describe('events.addAbortListener', () => {
3333 assert . strictEqual ( typeof disposable [ Symbol . dispose ] , 'function' ) ;
3434 } ) ;
3535
36+ it ( 'should pass an abort event to the listener for aborted runners' , async ( ) => {
37+ const signal = AbortSignal . abort ( ) ;
38+ const { promise, resolve } = Promise . withResolvers ( ) ;
39+ events . addAbortListener ( signal , ( e ) => resolve ( [ e , e ?. currentTarget ] ) ) ;
40+
41+ const [ event , currentTarget ] = await promise ;
42+ assert . strictEqual ( event . type , 'abort' ) ;
43+ assert . strictEqual ( event . target , signal ) ;
44+ assert . strictEqual ( event . isTrusted , true ) ;
45+ assert . strictEqual ( currentTarget , signal ) ;
46+ } ) ;
47+
48+ it ( 'should not execute the listener for aborted runners when disposed' , async ( ) => {
49+ const disposable = events . addAbortListener ( AbortSignal . abort ( ) , common . mustNotCall ( ) ) ;
50+ disposable [ Symbol . dispose ] ( ) ;
51+
52+ await new Promise ( setImmediate ) ;
53+ } ) ;
54+
3655 it ( 'should execute the listener even when event propagation stopped' , ( ) => {
3756 const controller = new AbortController ( ) ;
3857 const { signal } = controller ;
0 commit comments