Skip to content

Commit c4d9108

Browse files
committed
Migrate workspaceagents_test.go to use the new dbfake
1 parent b622bdd commit c4d9108

File tree

2 files changed

+227
-403
lines changed

2 files changed

+227
-403
lines changed

coderd/database/dbfake/dbfake.go

+41
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/coder/coder/v2/coderd/database/dbtime"
1616
"github.com/coder/coder/v2/coderd/provisionerdserver"
1717
"github.com/coder/coder/v2/coderd/telemetry"
18+
"github.com/coder/coder/v2/provisionersdk/proto"
1819
sdkproto "github.com/coder/coder/v2/provisionersdk/proto"
1920
)
2021

@@ -30,10 +31,31 @@ func CreateWorkspace(t testing.TB, db database.Store, seed database.Workspace) d
3031
CreatedBy: seed.OwnerID,
3132
})
3233
seed.TemplateID = template.ID
34+
seed.OwnerID = template.CreatedBy
35+
seed.OrganizationID = template.OrganizationID
3336
}
3437
return dbgen.Workspace(t, db, seed)
3538
}
3639

40+
// CreateWorkspaceWithAgent is a helper that generates a workspace with a single resource
41+
// that has an agent attached to it. The agent token is returned.
42+
func CreateWorkspaceWithAgent(t testing.TB, db database.Store, seed database.Workspace) (database.Workspace, string) {
43+
t.Helper()
44+
authToken := uuid.NewString()
45+
ws := CreateWorkspace(t, db, seed)
46+
CreateWorkspaceBuild(t, db, ws, database.WorkspaceBuild{}, &proto.Resource{
47+
Name: "example",
48+
Type: "aws_instance",
49+
Agents: []*proto.Agent{{
50+
Id: uuid.NewString(),
51+
Auth: &proto.Agent_Token{
52+
Token: authToken,
53+
},
54+
}},
55+
})
56+
return ws, authToken
57+
}
58+
3759
// CreateWorkspaceBuild inserts a build and a successful job into the database.
3860
func CreateWorkspaceBuild(t testing.TB, db database.Store, ws database.Workspace, seed database.WorkspaceBuild, resources ...*sdkproto.Resource) database.WorkspaceBuild {
3961
t.Helper()
@@ -43,9 +65,28 @@ func CreateWorkspaceBuild(t testing.TB, db database.Store, ws database.Workspace
4365
// This intentionally fulfills the minimum requirements of the schema.
4466
// Tests can provide a custom version ID if necessary.
4567
if seed.TemplateVersionID == uuid.Nil {
68+
jobID := uuid.New()
4669
templateVersion := dbgen.TemplateVersion(t, db, database.TemplateVersion{
70+
JobID: jobID,
4771
OrganizationID: ws.OrganizationID,
4872
CreatedBy: ws.OwnerID,
73+
TemplateID: uuid.NullUUID{
74+
UUID: ws.TemplateID,
75+
Valid: true,
76+
},
77+
})
78+
payload, _ := json.Marshal(provisionerdserver.TemplateVersionImportJob{
79+
TemplateVersionID: templateVersion.ID,
80+
})
81+
dbgen.ProvisionerJob(t, db, nil, database.ProvisionerJob{
82+
ID: jobID,
83+
OrganizationID: ws.OrganizationID,
84+
Input: payload,
85+
Type: database.ProvisionerJobTypeTemplateVersionImport,
86+
CompletedAt: sql.NullTime{
87+
Time: dbtime.Now(),
88+
Valid: true,
89+
},
4990
})
5091
seed.TemplateVersionID = templateVersion.ID
5192
}

0 commit comments

Comments
 (0)