Skip to content

Commit f9ebe8c

Browse files
authored
fix: send end of logs when dbfake completes job (#11402)
1 parent 48cd4c3 commit f9ebe8c

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

cli/start_test.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/coder/coder/v2/coderd/coderdtest"
1313
"github.com/coder/coder/v2/coderd/database"
1414
"github.com/coder/coder/v2/coderd/database/dbfake"
15+
"github.com/coder/coder/v2/coderd/database/dbtestutil"
1516
"github.com/coder/coder/v2/codersdk"
1617
"github.com/coder/coder/v2/provisioner/echo"
1718
"github.com/coder/coder/v2/provisionersdk/proto"
@@ -412,10 +413,11 @@ func TestStart_Starting(t *testing.T) {
412413
t.Parallel()
413414
ctx := testutil.Context(t, testutil.WaitShort)
414415

415-
client, db := coderdtest.NewWithDatabase(t, nil)
416+
store, ps := dbtestutil.NewDB(t)
417+
client := coderdtest.New(t, &coderdtest.Options{Pubsub: ps, Database: store})
416418
owner := coderdtest.CreateFirstUser(t, client)
417419
memberClient, member := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
418-
r := dbfake.WorkspaceBuild(t, db, database.Workspace{
420+
r := dbfake.WorkspaceBuild(t, store, database.Workspace{
419421
OwnerID: member.ID,
420422
OrganizationID: owner.OrganizationID,
421423
}).
@@ -434,7 +436,7 @@ func TestStart_Starting(t *testing.T) {
434436

435437
pty.ExpectMatch("workspace is already starting")
436438

437-
_ = dbfake.JobComplete(t, db, r.Build.JobID).Do()
439+
_ = dbfake.JobComplete(t, store, r.Build.JobID).Pubsub(ps).Do()
438440
pty.ExpectMatch("workspace has been started")
439441

440442
_ = testutil.RequireRecvCtx(ctx, t, doneChan)

coderd/database/dbfake/dbfake.go

+14
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"github.com/coder/coder/v2/coderd/rbac"
2121
"github.com/coder/coder/v2/coderd/telemetry"
2222
"github.com/coder/coder/v2/codersdk"
23+
"github.com/coder/coder/v2/provisionersdk"
2324
sdkproto "github.com/coder/coder/v2/provisionersdk/proto"
2425
)
2526

@@ -379,6 +380,7 @@ type JobCompleteBuilder struct {
379380
t testing.TB
380381
db database.Store
381382
jobID uuid.UUID
383+
ps pubsub.Pubsub
382384
}
383385

384386
type JobCompleteResponse struct {
@@ -393,6 +395,12 @@ func JobComplete(t testing.TB, db database.Store, jobID uuid.UUID) JobCompleteBu
393395
}
394396
}
395397

398+
func (b JobCompleteBuilder) Pubsub(ps pubsub.Pubsub) JobCompleteBuilder {
399+
// nolint: revive // returns modified struct
400+
b.ps = ps
401+
return b
402+
}
403+
396404
func (b JobCompleteBuilder) Do() JobCompleteResponse {
397405
r := JobCompleteResponse{CompletedAt: dbtime.Now()}
398406
err := b.db.UpdateProvisionerJobWithCompleteByID(ownerCtx, database.UpdateProvisionerJobWithCompleteByIDParams{
@@ -406,6 +414,12 @@ func (b JobCompleteBuilder) Do() JobCompleteResponse {
406414
},
407415
})
408416
require.NoError(b.t, err, "complete job")
417+
if b.ps != nil {
418+
data, err := json.Marshal(provisionersdk.ProvisionerJobLogsNotifyMessage{EndOfLogs: true})
419+
require.NoError(b.t, err)
420+
err = b.ps.Publish(provisionersdk.ProvisionerJobLogsNotifyChannel(b.jobID), data)
421+
require.NoError(b.t, err)
422+
}
409423
return r
410424
}
411425

0 commit comments

Comments
 (0)