@@ -205,6 +205,26 @@ test('on() - isDebug logs output', t => {
205205 t . is ( eventStore [ 0 ] . eventName , 'test' ) ;
206206} ) ;
207207
208+ test ( 'on() - use abort signal' , async t => {
209+ const emitter = new Emittery ( ) ;
210+ const abortController = new AbortController ( ) ;
211+
212+ const calls = [ ] ;
213+ const listener = ( ) => {
214+ calls . push ( 1 ) ;
215+ } ;
216+
217+ emitter . on ( 'abc' , listener , { signal : abortController . signal } ) ;
218+
219+ await emitter . emit ( 'abc' ) ;
220+ t . deepEqual ( calls , [ 1 ] ) ;
221+
222+ abortController . abort ( ) ;
223+ await emitter . emit ( 'abc' ) ;
224+
225+ t . deepEqual ( calls , [ 1 ] ) ;
226+ } ) ;
227+
208228test . serial ( 'events()' , async t => {
209229 const emitter = new Emittery ( ) ;
210230 const iterator = emitter . events ( '🦄' ) ;
@@ -769,6 +789,24 @@ test('onAny() - must have a listener', t => {
769789 } , { instanceOf : TypeError } ) ;
770790} ) ;
771791
792+ test ( 'onAny() - use abort signal' , async t => {
793+ t . plan ( 4 ) ;
794+
795+ const emitter = new Emittery ( ) ;
796+ const eventFixture = { foo : true } ;
797+ const abortController = new AbortController ( ) ;
798+
799+ emitter . onAny ( ( eventName , data ) => {
800+ t . is ( eventName , '🦄' ) ;
801+ t . deepEqual ( data , eventFixture ) ;
802+ } , { signal : abortController . signal } ) ;
803+
804+ await emitter . emit ( '🦄' , eventFixture ) ;
805+ await emitter . emitSerial ( '🦄' , eventFixture ) ;
806+ abortController . abort ( ) ;
807+ await emitter . emit ( '🦄' , eventFixture ) ;
808+ } ) ;
809+
772810test . serial ( 'anyEvent()' , async t => {
773811 const emitter = new Emittery ( ) ;
774812 const iterator = emitter . anyEvent ( ) ;
0 commit comments