Skip to content

Commit 98f3f4d

Browse files
committed
test: safely compare WorkerID to avoid nil dereference
1 parent 473a105 commit 98f3f4d

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

coderd/provisionerjobs_test.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ func TestProvisionerJobs(t *testing.T) {
189189

190190
// Ensures that when a provisioner job is in the succeeded state,
191191
// the API response includes both worker_id and worker_name fields
192-
t.Run("AssignedProvisionerJob_IncludesWorkerIDAndName", func(t *testing.T) {
192+
t.Run("AssignedProvisionerJob", func(t *testing.T) {
193193
t.Parallel()
194194

195195
db, ps := dbtestutil.NewDB(t, dbtestutil.WithDumpOnFailure())
@@ -214,7 +214,7 @@ func TestProvisionerJobs(t *testing.T) {
214214
err := provisionerDaemon.Close()
215215
require.NoError(t, err)
216216

217-
t.Run("List_AssignedProvisionerJob_IncludesWorkerIDAndName", func(t *testing.T) {
217+
t.Run("List_IncludesWorkerIDAndName", func(t *testing.T) {
218218
t.Parallel()
219219

220220
ctx := testutil.Context(t, testutil.WaitMedium)
@@ -223,7 +223,9 @@ func TestProvisionerJobs(t *testing.T) {
223223
provisionerDaemons, err := db.GetProvisionerDaemons(ctx)
224224
require.NoError(t, err)
225225
require.Equal(t, 1, len(provisionerDaemons))
226-
require.Equal(t, provisionerDaemonName, provisionerDaemons[0].Name)
226+
if assert.NotEmpty(t, provisionerDaemons) {
227+
require.Equal(t, provisionerDaemonName, provisionerDaemons[0].Name)
228+
}
227229

228230
// Get provisioner jobs
229231
jobs, err := templateAdminClient.OrganizationProvisionerJobs(ctx, owner.OrganizationID, nil)
@@ -235,12 +237,14 @@ func TestProvisionerJobs(t *testing.T) {
235237
require.Equal(t, database.ProvisionerJobStatusSucceeded, database.ProvisionerJobStatus(job.Status))
236238

237239
// Guarantee that provisioner jobs contain the provisioner daemon ID and name
238-
require.Equal(t, provisionerDaemons[0].ID, *job.WorkerID)
239-
require.Equal(t, provisionerDaemonName, job.WorkerName)
240+
if assert.NotEmpty(t, provisionerDaemons) {
241+
require.Equal(t, &provisionerDaemons[0].ID, job.WorkerID)
242+
require.Equal(t, provisionerDaemonName, job.WorkerName)
243+
}
240244
}
241245
})
242246

243-
t.Run("Get_AssignedProvisionerJob_IncludesWorkerIDAndName", func(t *testing.T) {
247+
t.Run("Get_IncludesWorkerIDAndName", func(t *testing.T) {
244248
t.Parallel()
245249

246250
ctx := testutil.Context(t, testutil.WaitMedium)
@@ -249,7 +253,9 @@ func TestProvisionerJobs(t *testing.T) {
249253
provisionerDaemons, err := db.GetProvisionerDaemons(ctx)
250254
require.NoError(t, err)
251255
require.Equal(t, 1, len(provisionerDaemons))
252-
require.Equal(t, provisionerDaemonName, provisionerDaemons[0].Name)
256+
if assert.NotEmpty(t, provisionerDaemons) {
257+
require.Equal(t, provisionerDaemonName, provisionerDaemons[0].Name)
258+
}
253259

254260
// Get all provisioner jobs
255261
jobs, err := templateAdminClient.OrganizationProvisionerJobs(ctx, owner.OrganizationID, nil)
@@ -273,8 +279,10 @@ func TestProvisionerJobs(t *testing.T) {
273279
require.Equal(t, database.ProvisionerJobStatusSucceeded, database.ProvisionerJobStatus(workspaceProvisionerJob.Status))
274280

275281
// Guarantee that provisioner job contains the provisioner daemon ID and name
276-
require.Equal(t, provisionerDaemons[0].ID, *workspaceProvisionerJob.WorkerID)
277-
require.Equal(t, provisionerDaemonName, workspaceProvisionerJob.WorkerName)
282+
if assert.NotEmpty(t, provisionerDaemons) {
283+
require.Equal(t, &provisionerDaemons[0].ID, workspaceProvisionerJob.WorkerID)
284+
require.Equal(t, provisionerDaemonName, workspaceProvisionerJob.WorkerName)
285+
}
278286
})
279287
})
280288
}

0 commit comments

Comments
 (0)