Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita9ed7d2

Browse files
test(coderd/database): wrap test cases in subtests
1 parente7693ee commita9ed7d2

File tree

1 file changed

+66
-62
lines changed

1 file changed

+66
-62
lines changed

‎coderd/database/querier_test.go‎

Lines changed: 66 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -2391,77 +2391,81 @@ func TestGetProvisionerJobsByIDsWithQueuePosition(t *testing.T) {
23912391
}
23922392

23932393
for_,tc:=rangetestCases {
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+
foridx,tags:=rangetc.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+
}
23952416

2396-
// Create provisioner jobs based on provided tags:
2397-
allJobs:=make([]database.ProvisionerJob,len(tc.jobTags))
2398-
foridx,tags:=rangetc.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+
foridx,tags:=rangetc.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+
}
24132425

2414-
// Create provisioner daemons based on provided tags:
2415-
foridx,tags:=rangetc.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+
foridx,job:=rangeallJobs {
2428+
require.Equal(t,database.ProvisionerJobStatusPending,job.JobStatus,"expected job %d to have status %s",idx,database.ProvisionerJobStatusPending)
2429+
}
24222430

2423-
// Assert invariant: the jobs are in pending status
2424-
foridx,job:=rangeallJobs {
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+
foridx,job:=rangeallJobs {
2434+
if_,skip:=tc.skipJobIDs[idx];skip {
2435+
continue
2436+
}
24272437

2428-
filteredJobs:=make([]database.ProvisionerJob,0)
2429-
filteredJobIDs:=make([]uuid.UUID,0)
2430-
foridx,job:=rangeallJobs {
2431-
if_,skip:=tc.skipJobIDs[idx];skip {
2432-
continue
2438+
filteredJobs=append(filteredJobs,job)
2439+
filteredJobIDs=append(filteredJobIDs,job.ID)
24332440
}
24342441

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")
24432446

2444-
// Then: the jobs should be returned in the correct order (sorted by createdAt)
2445-
sort.Slice(filteredJobs,func(i,jint)bool {
2446-
returnfilteredJobs[i].CreatedAt.Before(filteredJobs[j].CreatedAt)
2447-
})
2448-
foridx,job:=rangeactualJobs {
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,jint)bool {
2449+
returnfilteredJobs[i].CreatedAt.Before(filteredJobs[j].CreatedAt)
2450+
})
2451+
foridx,job:=rangeactualJobs {
2452+
assert.EqualValues(t,filteredJobs[idx],job.ProvisionerJob)
2453+
}
24512454

2452-
// Then: the queue size should be set correctly
2453-
varqueueSizes []int64
2454-
for_,job:=rangeactualJobs {
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+
varqueueSizes []int64
2457+
for_,job:=rangeactualJobs {
2458+
queueSizes=append(queueSizes,job.QueueSize)
2459+
}
2460+
assert.EqualValues(t,tc.queueSizes,queueSizes,"expected queue positions to be set correctly")
24582461

2459-
// Then: the queue position should be set correctly:
2460-
varqueuePositions []int64
2461-
for_,job:=rangeactualJobs {
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+
varqueuePositions []int64
2464+
for_,job:=rangeactualJobs {
2465+
queuePositions=append(queuePositions,job.QueuePosition)
2466+
}
2467+
assert.EqualValues(t,tc.queuePositions,queuePositions,"expected queue positions to be set correctly")
2468+
})
24652469
}
24662470
}
24672471

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp