fix: send end of logs when dbfake completes job (#11402)

This commit is contained in:
Spike Curtis
2024-01-04 15:18:00 +04:00
committed by GitHub
parent 48cd4c3a10
commit f9ebe8c719
2 changed files with 19 additions and 3 deletions

View File

@ -20,6 +20,7 @@ import (
"github.com/coder/coder/v2/coderd/rbac"
"github.com/coder/coder/v2/coderd/telemetry"
"github.com/coder/coder/v2/codersdk"
"github.com/coder/coder/v2/provisionersdk"
sdkproto "github.com/coder/coder/v2/provisionersdk/proto"
)
@ -379,6 +380,7 @@ type JobCompleteBuilder struct {
t testing.TB
db database.Store
jobID uuid.UUID
ps pubsub.Pubsub
}
type JobCompleteResponse struct {
@ -393,6 +395,12 @@ func JobComplete(t testing.TB, db database.Store, jobID uuid.UUID) JobCompleteBu
}
}
func (b JobCompleteBuilder) Pubsub(ps pubsub.Pubsub) JobCompleteBuilder {
// nolint: revive // returns modified struct
b.ps = ps
return b
}
func (b JobCompleteBuilder) Do() JobCompleteResponse {
r := JobCompleteResponse{CompletedAt: dbtime.Now()}
err := b.db.UpdateProvisionerJobWithCompleteByID(ownerCtx, database.UpdateProvisionerJobWithCompleteByIDParams{
@ -406,6 +414,12 @@ func (b JobCompleteBuilder) Do() JobCompleteResponse {
},
})
require.NoError(b.t, err, "complete job")
if b.ps != nil {
data, err := json.Marshal(provisionersdk.ProvisionerJobLogsNotifyMessage{EndOfLogs: true})
require.NoError(b.t, err)
err = b.ps.Publish(provisionersdk.ProvisionerJobLogsNotifyChannel(b.jobID), data)
require.NoError(b.t, err)
}
return r
}