File tree Expand file tree Collapse file tree 2 files changed +43
-1
lines changed Expand file tree Collapse file tree 2 files changed +43
-1
lines changed Original file line number Diff line number Diff line change @@ -80,3 +80,13 @@ module.exports.customEmitter = wraptile((fns) => {
8080
8181 return emitter ;
8282} ) ;
83+
84+ module . exports . abortEmitter = ( from , to , names = to ) => {
85+ const emitter = new EventEmitter ( ) ;
86+
87+ emitter . abort = ( ) => {
88+ emitter . emit ( 'abort' ) ;
89+ } ;
90+
91+ return emitter ;
92+ } ;
Original file line number Diff line number Diff line change @@ -5,8 +5,9 @@ const {once} = require('events');
55const test = require ( 'supertape' ) ;
66const mock = require ( 'mock-require' ) ;
77const clear = require ( 'clear-module' ) ;
8+ const wait = require ( '@iocmd/wait' ) ;
89
9- const { errorEmitter} = require ( '../lib/emitters' ) ;
10+ const { errorEmitter, abortEmitter } = require ( '../lib/emitters' ) ;
1011
1112const clearFileop = require ( '../lib/clear' ) ;
1213
@@ -43,3 +44,34 @@ test('operate: remove: error', async (t) => {
4344 t . end ( ) ;
4445} ) ;
4546
47+ test ( 'operate: remove: abort' , async ( t ) => {
48+ clearFileop ( ) ;
49+ clear ( removePath ) ;
50+
51+ const from = '/hello' ;
52+ const names = [ 'abc' ] ;
53+
54+ mock ( removePath , abortEmitter ) ;
55+ const connect = require ( connectPath ) ;
56+
57+ const {
58+ socket,
59+ done,
60+ } = await connect ( ) ;
61+
62+ socket . emit ( 'operation' , 'remove' , from , names ) ;
63+ const [ id ] = await once ( socket , 'id' ) ;
64+
65+ socket . emit ( `${ id } #start` ) ;
66+ const emit = socket . emit . bind ( socket ) ;
67+
68+ await Promise . all ( [
69+ once ( socket , `${ id } #end` ) ,
70+ wait ( emit , `${ id } #abort` ) ,
71+ ] ) ;
72+
73+ done ( ) ;
74+
75+ t . pass ( 'abort' ) ;
76+ t . end ( ) ;
77+ } ) ;
You can’t perform that action at this time.
0 commit comments