@@ -237,6 +237,12 @@ describe('resolveTaskFn', () => {
237
237
expect ( context ) . toMatchInlineSnapshot ( `
238
238
Object {
239
239
"errors": Set {},
240
+ "events": EventEmitter {
241
+ "_events": Object {},
242
+ "_eventsCount": 0,
243
+ "_maxListeners": undefined,
244
+ Symbol(kCapture): false,
245
+ },
240
246
"hasPartiallyStagedFiles": null,
241
247
"output": Array [],
242
248
"quiet": false,
@@ -263,6 +269,12 @@ describe('resolveTaskFn', () => {
263
269
expect ( context ) . toMatchInlineSnapshot ( `
264
270
Object {
265
271
"errors": Set {},
272
+ "events": EventEmitter {
273
+ "_events": Object {},
274
+ "_eventsCount": 0,
275
+ "_maxListeners": undefined,
276
+ Symbol(kCapture): false,
277
+ },
266
278
"hasPartiallyStagedFiles": null,
267
279
"output": Array [
268
280
"
@@ -295,6 +307,12 @@ describe('resolveTaskFn', () => {
295
307
"errors": Set {
296
308
Symbol(TaskError),
297
309
},
310
+ "events": EventEmitter {
311
+ "_events": Object {},
312
+ "_eventsCount": 0,
313
+ "_maxListeners": undefined,
314
+ Symbol(kCapture): false,
315
+ },
298
316
"hasPartiallyStagedFiles": null,
299
317
"output": Array [
300
318
"stderr",
@@ -325,6 +343,12 @@ describe('resolveTaskFn', () => {
325
343
"errors": Set {
326
344
Symbol(TaskError),
327
345
},
346
+ "events": EventEmitter {
347
+ "_events": Object {},
348
+ "_eventsCount": 0,
349
+ "_maxListeners": undefined,
350
+ Symbol(kCapture): false,
351
+ },
328
352
"hasPartiallyStagedFiles": null,
329
353
"output": Array [],
330
354
"quiet": true,
@@ -358,7 +382,38 @@ describe('resolveTaskFn', () => {
358
382
await expect ( taskPromise ) . resolves . toEqual ( )
359
383
} )
360
384
361
- it ( 'should kill a long running task when an error is added to the context' , async ( ) => {
385
+ it ( 'should ignore pid-tree errors' , async ( ) => {
386
+ execa . mockImplementationOnce ( ( ) =>
387
+ createExecaReturnValue (
388
+ {
389
+ stdout : 'a-ok' ,
390
+ stderr : '' ,
391
+ code : 0 ,
392
+ cmd : 'mock cmd' ,
393
+ failed : false ,
394
+ killed : false ,
395
+ signal : null ,
396
+ } ,
397
+ 1000
398
+ )
399
+ )
400
+
401
+ pidTree . mockImplementationOnce ( ( ) => {
402
+ throw new Error ( 'No matching pid found' )
403
+ } )
404
+
405
+ const context = getInitialState ( )
406
+ const taskFn = resolveTaskFn ( { command : 'node' } )
407
+ const taskPromise = taskFn ( context )
408
+
409
+ context . events . emit ( 'lint-staged:taskError' )
410
+
411
+ jest . runAllTimers ( )
412
+
413
+ await expect ( taskPromise ) . rejects . toThrowErrorMatchingInlineSnapshot ( `"node [KILLED]"` )
414
+ } )
415
+
416
+ it ( 'should kill a long running task when error event is emitted' , async ( ) => {
362
417
execa . mockImplementationOnce ( ( ) =>
363
418
createExecaReturnValue (
364
419
{
@@ -378,7 +433,7 @@ describe('resolveTaskFn', () => {
378
433
const taskFn = resolveTaskFn ( { command : 'node' } )
379
434
const taskPromise = taskFn ( context )
380
435
381
- context . errors . add ( { } )
436
+ context . events . emit ( 'lint-staged:taskError' )
382
437
383
438
jest . runAllTimers ( )
384
439
@@ -416,7 +471,8 @@ describe('resolveTaskFn', () => {
416
471
const context = getInitialState ( )
417
472
const taskPromise = taskFn ( context )
418
473
419
- context . errors . add ( { } )
474
+ context . events . emit ( 'lint-staged:taskError' )
475
+
420
476
jest . runAllTimers ( )
421
477
422
478
await expect ( taskPromise ) . rejects . toThrowErrorMatchingInlineSnapshot ( `"node [KILLED]"` )
0 commit comments