@@ -40,7 +40,7 @@ describe('flows', () => {
40
40
} ) ;
41
41
42
42
describe ( 'when removeOnFail is true in last pending child' , ( ) => {
43
- it ( 'moves parent to wait without getting stuck' , async ( ) => {
43
+ it ( 'moves parent to failed without getting stuck' , async ( ) => {
44
44
const worker = new Worker (
45
45
queueName ,
46
46
async job => {
@@ -51,9 +51,14 @@ describe('flows', () => {
51
51
{ connection, prefix } ,
52
52
) ;
53
53
await worker . waitUntilReady ( ) ;
54
+ const queueEvents = new QueueEvents ( queueName , {
55
+ connection,
56
+ prefix,
57
+ } ) ;
58
+ await queueEvents . waitUntilReady ( ) ;
54
59
55
60
const flow = new FlowProducer ( { connection, prefix } ) ;
56
- await flow . add ( {
61
+ const tree = await flow . add ( {
57
62
name : 'parent' ,
58
63
data : { } ,
59
64
queueName,
@@ -74,21 +79,17 @@ describe('flows', () => {
74
79
] ,
75
80
} ) ;
76
81
77
- const completed = new Promise < void > ( ( resolve , reject ) => {
78
- worker . on ( 'completed' , async ( job : Job ) => {
79
- try {
80
- if ( job . name === 'parent' ) {
81
- const { processed } = await job . getDependenciesCount ( ) ;
82
- expect ( processed ) . to . equal ( 1 ) ;
83
- resolve ( ) ;
84
- }
85
- } catch ( err ) {
86
- reject ( err ) ;
82
+ const failed = new Promise < void > ( resolve => {
83
+ queueEvents . on ( 'failed' , async ( { jobId, failedReason, prev } ) => {
84
+ if ( jobId === tree . job . id ) {
85
+ const { processed } = await tree . job ! . getDependenciesCount ( ) ;
86
+ expect ( processed ) . to . equal ( 1 ) ;
87
+ resolve ( ) ;
87
88
}
88
89
} ) ;
89
90
} ) ;
90
91
91
- await completed ;
92
+ await failed ;
92
93
await flow . close ( ) ;
93
94
await worker . close ( ) ;
94
95
} ) ;
0 commit comments