From 3a0a4ddfcd34f74b429030822d904359ba9220f6 Mon Sep 17 00:00:00 2001 From: Spike Curtis Date: Mon, 27 Nov 2023 14:46:31 +0400 Subject: [PATCH] chore: convert dbfake.ProvisionerJobResources to builder (#10881) Convert to builder for consistency with rest of the package. This will make it easier to use, and means we can drop "Builder" from function arguments since they are all builders in the package. --- coderd/database/dbfake/dbfake.go | 37 +++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/coderd/database/dbfake/dbfake.go b/coderd/database/dbfake/dbfake.go index 8afcc5ff36..6173860232 100644 --- a/coderd/database/dbfake/dbfake.go +++ b/coderd/database/dbfake/dbfake.go @@ -187,11 +187,11 @@ func (b WorkspaceBuildBuilder) Do() database.WorkspaceBuild { Valid: true, }, }) - ProvisionerJobResources(b.t, b.db, jobID, b.seed.Transition, b.resources...) + NewProvisionerJobResourcesBuilder(b.t, b.db, jobID, b.seed.Transition, b.resources...).Do() b.seed.TemplateVersionID = templateVersion.ID } build := dbgen.WorkspaceBuild(b.t, b.db, b.seed) - ProvisionerJobResources(b.t, b.db, job.ID, b.seed.Transition, b.resources...) + NewProvisionerJobResourcesBuilder(b.t, b.db, job.ID, b.seed.Transition, b.resources...).Do() if b.ps != nil { err = b.ps.Publish(codersdk.WorkspaceNotifyChannel(build.WorkspaceID), []byte{}) require.NoError(b.t, err) @@ -199,16 +199,37 @@ func (b WorkspaceBuildBuilder) Do() database.WorkspaceBuild { return build } -// ProvisionerJobResources inserts a series of resources into a provisioner job. -func ProvisionerJobResources(t testing.TB, db database.Store, job uuid.UUID, transition database.WorkspaceTransition, resources ...*sdkproto.Resource) { - t.Helper() +type ProvisionerJobResourcesBuilder struct { + t testing.TB + db database.Store + jobID uuid.UUID + transition database.WorkspaceTransition + resources []*sdkproto.Resource +} + +// NewProvisionerJobResourcesBuilder inserts a series of resources into a provisioner job. +func NewProvisionerJobResourcesBuilder( + t testing.TB, db database.Store, jobID uuid.UUID, transition database.WorkspaceTransition, resources ...*sdkproto.Resource, +) ProvisionerJobResourcesBuilder { + return ProvisionerJobResourcesBuilder{ + t: t, + db: db, + jobID: jobID, + transition: transition, + resources: resources, + } +} + +func (b ProvisionerJobResourcesBuilder) Do() { + b.t.Helper() + transition := b.transition if transition == "" { // Default to start! transition = database.WorkspaceTransitionStart } - for _, resource := range resources { + for _, resource := range b.resources { //nolint:gocritic // This is only used by tests. - err := provisionerdserver.InsertWorkspaceResource(dbauthz.AsSystemRestricted(context.Background()), db, job, transition, resource, &telemetry.Snapshot{}) - require.NoError(t, err) + err := provisionerdserver.InsertWorkspaceResource(dbauthz.AsSystemRestricted(context.Background()), b.db, b.jobID, transition, resource, &telemetry.Snapshot{}) + require.NoError(b.t, err) } }