@@ -2391,77 +2391,81 @@ func TestGetProvisionerJobsByIDsWithQueuePosition(t *testing.T) {
2391
2391
}
2392
2392
2393
2393
for _ , tc := range testCases {
2394
- db , _ := dbtestutil .NewDB (t )
2394
+ tc := tc // Capture loop variable to avoid data races
2395
+ t .Run (tc .name , func (t * testing.T ) {
2396
+ t .Parallel ()
2397
+ db , _ := dbtestutil .NewDB (t )
2398
+
2399
+ // Create provisioner jobs based on provided tags:
2400
+ allJobs := make ([]database.ProvisionerJob , len (tc .jobTags ))
2401
+ for idx , tags := range tc .jobTags {
2402
+ // Make sure jobs are stored in correct order, first job should have the earliest createdAt timestamp.
2403
+ // Example for 3 jobs:
2404
+ // job_1 createdAt: now - 3 minutes
2405
+ // job_2 createdAt: now - 2 minutes
2406
+ // job_3 createdAt: now - 1 minute
2407
+ timeOffsetInMinutes := len (tc .jobTags ) - idx
2408
+ timeOffset := time .Duration (timeOffsetInMinutes ) * time .Minute
2409
+ createdAt := now .Add (- timeOffset )
2410
+
2411
+ allJobs [idx ] = dbgen .ProvisionerJob (t , db , nil , database.ProvisionerJob {
2412
+ CreatedAt : createdAt ,
2413
+ Tags : tags ,
2414
+ })
2415
+ }
2395
2416
2396
- // Create provisioner jobs based on provided tags:
2397
- allJobs := make ([]database.ProvisionerJob , len (tc .jobTags ))
2398
- for idx , tags := range tc .jobTags {
2399
- // Make sure jobs are stored in correct order, first job should have the earliest createdAt timestamp.
2400
- // Example for 3 jobs:
2401
- // job_1 createdAt: now - 3 minutes
2402
- // job_2 createdAt: now - 2 minutes
2403
- // job_3 createdAt: now - 1 minute
2404
- timeOffsetInMinutes := len (tc .jobTags ) - idx
2405
- timeOffset := time .Duration (timeOffsetInMinutes ) * time .Minute
2406
- createdAt := now .Add (- timeOffset )
2407
-
2408
- allJobs [idx ] = dbgen .ProvisionerJob (t , db , nil , database.ProvisionerJob {
2409
- CreatedAt : createdAt ,
2410
- Tags : tags ,
2411
- })
2412
- }
2417
+ // Create provisioner daemons based on provided tags:
2418
+ for idx , tags := range tc .daemonTags {
2419
+ dbgen .ProvisionerDaemon (t , db , database.ProvisionerDaemon {
2420
+ Name : fmt .Sprintf ("prov_%v" , idx ),
2421
+ Provisioners : []database.ProvisionerType {database .ProvisionerTypeEcho },
2422
+ Tags : tags ,
2423
+ })
2424
+ }
2413
2425
2414
- // Create provisioner daemons based on provided tags:
2415
- for idx , tags := range tc .daemonTags {
2416
- dbgen .ProvisionerDaemon (t , db , database.ProvisionerDaemon {
2417
- Name : fmt .Sprintf ("prov_%v" , idx ),
2418
- Provisioners : []database.ProvisionerType {database .ProvisionerTypeEcho },
2419
- Tags : tags ,
2420
- })
2421
- }
2426
+ // Assert invariant: the jobs are in pending status
2427
+ for idx , job := range allJobs {
2428
+ require .Equal (t , database .ProvisionerJobStatusPending , job .JobStatus , "expected job %d to have status %s" , idx , database .ProvisionerJobStatusPending )
2429
+ }
2422
2430
2423
- // Assert invariant: the jobs are in pending status
2424
- for idx , job := range allJobs {
2425
- require .Equal (t , database .ProvisionerJobStatusPending , job .JobStatus , "expected job %d to have status %s" , idx , database .ProvisionerJobStatusPending )
2426
- }
2431
+ filteredJobs := make ([]database.ProvisionerJob , 0 )
2432
+ filteredJobIDs := make ([]uuid.UUID , 0 )
2433
+ for idx , job := range allJobs {
2434
+ if _ , skip := tc .skipJobIDs [idx ]; skip {
2435
+ continue
2436
+ }
2427
2437
2428
- filteredJobs := make ([]database.ProvisionerJob , 0 )
2429
- filteredJobIDs := make ([]uuid.UUID , 0 )
2430
- for idx , job := range allJobs {
2431
- if _ , skip := tc .skipJobIDs [idx ]; skip {
2432
- continue
2438
+ filteredJobs = append (filteredJobs , job )
2439
+ filteredJobIDs = append (filteredJobIDs , job .ID )
2433
2440
}
2434
2441
2435
- filteredJobs = append (filteredJobs , job )
2436
- filteredJobIDs = append (filteredJobIDs , job .ID )
2437
- }
2438
-
2439
- // When: we fetch the jobs by their IDs
2440
- actualJobs , err := db .GetProvisionerJobsByIDsWithQueuePosition (ctx , filteredJobIDs )
2441
- require .NoError (t , err )
2442
- require .Len (t , actualJobs , len (filteredJobs ), "should return all unskipped jobs" )
2442
+ // When: we fetch the jobs by their IDs
2443
+ actualJobs , err := db .GetProvisionerJobsByIDsWithQueuePosition (ctx , filteredJobIDs )
2444
+ require .NoError (t , err )
2445
+ require .Len (t , actualJobs , len (filteredJobs ), "should return all unskipped jobs" )
2443
2446
2444
- // Then: the jobs should be returned in the correct order (sorted by createdAt)
2445
- sort .Slice (filteredJobs , func (i , j int ) bool {
2446
- return filteredJobs [i ].CreatedAt .Before (filteredJobs [j ].CreatedAt )
2447
- })
2448
- for idx , job := range actualJobs {
2449
- assert .EqualValues (t , filteredJobs [idx ], job .ProvisionerJob )
2450
- }
2447
+ // Then: the jobs should be returned in the correct order (sorted by createdAt)
2448
+ sort .Slice (filteredJobs , func (i , j int ) bool {
2449
+ return filteredJobs [i ].CreatedAt .Before (filteredJobs [j ].CreatedAt )
2450
+ })
2451
+ for idx , job := range actualJobs {
2452
+ assert .EqualValues (t , filteredJobs [idx ], job .ProvisionerJob )
2453
+ }
2451
2454
2452
- // Then: the queue size should be set correctly
2453
- var queueSizes []int64
2454
- for _ , job := range actualJobs {
2455
- queueSizes = append (queueSizes , job .QueueSize )
2456
- }
2457
- assert .EqualValues (t , tc .queueSizes , queueSizes , "expected queue positions to be set correctly" )
2455
+ // Then: the queue size should be set correctly
2456
+ var queueSizes []int64
2457
+ for _ , job := range actualJobs {
2458
+ queueSizes = append (queueSizes , job .QueueSize )
2459
+ }
2460
+ assert .EqualValues (t , tc .queueSizes , queueSizes , "expected queue positions to be set correctly" )
2458
2461
2459
- // Then: the queue position should be set correctly:
2460
- var queuePositions []int64
2461
- for _ , job := range actualJobs {
2462
- queuePositions = append (queuePositions , job .QueuePosition )
2463
- }
2464
- assert .EqualValues (t , tc .queuePositions , queuePositions , "expected queue positions to be set correctly" )
2462
+ // Then: the queue position should be set correctly:
2463
+ var queuePositions []int64
2464
+ for _ , job := range actualJobs {
2465
+ queuePositions = append (queuePositions , job .QueuePosition )
2466
+ }
2467
+ assert .EqualValues (t , tc .queuePositions , queuePositions , "expected queue positions to be set correctly" )
2468
+ })
2465
2469
}
2466
2470
}
2467
2471
0 commit comments