mirror of
https://github.com/coder/coder.git
synced 2025-07-03 16:13:58 +00:00
chore: remove dbfake.WorkspaceBuild in favor of builder pattern (#10814)
I'd like to convert dbfake into a builder pattern to prevent a proliferation of XXXWithYYY methods. This is one step of the way by removing the Non-builder function.
This commit is contained in:
@ -59,15 +59,15 @@ func WorkspaceWithAgent(
|
||||
agents = m(agents)
|
||||
}
|
||||
ws := Workspace(t, db, seed)
|
||||
WorkspaceBuild(t, db, ws, database.WorkspaceBuild{}, &sdkproto.Resource{
|
||||
NewWorkspaceBuildBuilder(t, db, ws).Resource(&sdkproto.Resource{
|
||||
Name: "example",
|
||||
Type: "aws_instance",
|
||||
Agents: agents,
|
||||
})
|
||||
}).Do()
|
||||
return ws, authToken
|
||||
}
|
||||
|
||||
type BuildBuilder struct {
|
||||
type WorkspaceBuildBuilder struct {
|
||||
t testing.TB
|
||||
db database.Store
|
||||
ps pubsub.Pubsub
|
||||
@ -76,29 +76,29 @@ type BuildBuilder struct {
|
||||
resources []*sdkproto.Resource
|
||||
}
|
||||
|
||||
func WorkspaceBuildBuilder(t testing.TB, db database.Store, ws database.Workspace) BuildBuilder {
|
||||
return BuildBuilder{t: t, db: db, ws: ws}
|
||||
func NewWorkspaceBuildBuilder(t testing.TB, db database.Store, ws database.Workspace) WorkspaceBuildBuilder {
|
||||
return WorkspaceBuildBuilder{t: t, db: db, ws: ws}
|
||||
}
|
||||
|
||||
func (b BuildBuilder) Pubsub(ps pubsub.Pubsub) BuildBuilder {
|
||||
func (b WorkspaceBuildBuilder) Pubsub(ps pubsub.Pubsub) WorkspaceBuildBuilder {
|
||||
//nolint: revive // returns modified struct
|
||||
b.ps = ps
|
||||
return b
|
||||
}
|
||||
|
||||
func (b BuildBuilder) Seed(seed database.WorkspaceBuild) BuildBuilder {
|
||||
func (b WorkspaceBuildBuilder) Seed(seed database.WorkspaceBuild) WorkspaceBuildBuilder {
|
||||
//nolint: revive // returns modified struct
|
||||
b.seed = seed
|
||||
return b
|
||||
}
|
||||
|
||||
func (b BuildBuilder) Resource(resource *sdkproto.Resource) BuildBuilder {
|
||||
func (b WorkspaceBuildBuilder) Resource(resource ...*sdkproto.Resource) WorkspaceBuildBuilder {
|
||||
//nolint: revive // returns modified struct
|
||||
b.resources = append(b.resources, resource)
|
||||
b.resources = append(b.resources, resource...)
|
||||
return b
|
||||
}
|
||||
|
||||
func (b BuildBuilder) Do() database.WorkspaceBuild {
|
||||
func (b WorkspaceBuildBuilder) Do() database.WorkspaceBuild {
|
||||
b.t.Helper()
|
||||
jobID := uuid.New()
|
||||
b.seed.ID = uuid.New()
|
||||
@ -177,15 +177,6 @@ func (b BuildBuilder) Do() database.WorkspaceBuild {
|
||||
return build
|
||||
}
|
||||
|
||||
// WorkspaceBuild inserts a build and a successful job into the database.
|
||||
func WorkspaceBuild(t testing.TB, db database.Store, ws database.Workspace, seed database.WorkspaceBuild, resources ...*sdkproto.Resource) database.WorkspaceBuild {
|
||||
b := WorkspaceBuildBuilder(t, db, ws).Seed(seed)
|
||||
for _, r := range resources {
|
||||
b = b.Resource(r)
|
||||
}
|
||||
return b.Do()
|
||||
}
|
||||
|
||||
// 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()
|
||||
|
Reference in New Issue
Block a user