@@ -239,6 +239,37 @@ describe('scheduler', () => {
239
239
expect ( calls ) . toEqual ( [ 'cb1' , 'cb2' , 'job1' ] )
240
240
} )
241
241
242
+ it ( 'should insert pre jobs without ids first during flushing' , async ( ) => {
243
+ const calls : string [ ] = [ ]
244
+ const job1 : SchedulerJob = ( ) => {
245
+ calls . push ( 'job1' )
246
+ queueJob ( job3 )
247
+ queueJob ( job4 )
248
+ }
249
+ // job1 has no id
250
+ job1 . flags ! |= SchedulerJobFlags . PRE
251
+ const job2 : SchedulerJob = ( ) => {
252
+ calls . push ( 'job2' )
253
+ }
254
+ job2 . id = 1
255
+ job2 . flags ! |= SchedulerJobFlags . PRE
256
+ const job3 : SchedulerJob = ( ) => {
257
+ calls . push ( 'job3' )
258
+ }
259
+ // job3 has no id
260
+ job3 . flags ! |= SchedulerJobFlags . PRE
261
+ const job4 : SchedulerJob = ( ) => {
262
+ calls . push ( 'job4' )
263
+ }
264
+ // job4 has no id
265
+ job4 . flags ! |= SchedulerJobFlags . PRE
266
+
267
+ queueJob ( job1 )
268
+ queueJob ( job2 )
269
+ await nextTick ( )
270
+ expect ( calls ) . toEqual ( [ 'job1' , 'job3' , 'job4' , 'job2' ] )
271
+ } )
272
+
242
273
// #3806
243
274
it ( 'queue preFlushCb inside postFlushCb' , async ( ) => {
244
275
const spy = vi . fn ( )
@@ -448,12 +479,20 @@ describe('scheduler', () => {
448
479
job2 . id = 2
449
480
const job3 = ( ) => calls . push ( 'job3' )
450
481
job3 . id = 1
482
+ const job4 : SchedulerJob = ( ) => calls . push ( 'job4' )
483
+ job4 . id = 2
484
+ job4 . flags ! |= SchedulerJobFlags . PRE
485
+ const job5 : SchedulerJob = ( ) => calls . push ( 'job5' )
486
+ // job5 has no id
487
+ job5 . flags ! |= SchedulerJobFlags . PRE
451
488
452
489
queueJob ( job1 )
453
490
queueJob ( job2 )
454
491
queueJob ( job3 )
492
+ queueJob ( job4 )
493
+ queueJob ( job5 )
455
494
await nextTick ( )
456
- expect ( calls ) . toEqual ( [ 'job3' , 'job2' , 'job1' ] )
495
+ expect ( calls ) . toEqual ( [ 'job5' , ' job3' , 'job4 ', 'job2' , 'job1' ] )
457
496
} )
458
497
459
498
test ( 'sort SchedulerCbs based on id' , async ( ) => {
0 commit comments