Skip to content

Commit b776b1b

Browse files
committed
fixup! test
1 parent 98f59b0 commit b776b1b

File tree

1 file changed

+91
-75
lines changed

1 file changed

+91
-75
lines changed

cli/provisioners_test.go

Lines changed: 91 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -20,82 +20,82 @@ import (
2020
func TestProvisioners(t *testing.T) {
2121
t.Parallel()
2222

23-
t.Run("List", func(t *testing.T) {
24-
t.Parallel()
23+
db, ps := dbtestutil.NewDB(t, dbtestutil.WithDumpOnFailure())
24+
client, _, coderdAPI := coderdtest.NewWithAPI(t, &coderdtest.Options{
25+
IncludeProvisionerDaemon: true,
26+
Database: db,
27+
Pubsub: ps,
28+
})
29+
owner := coderdtest.CreateFirstUser(t, client)
30+
member, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
31+
32+
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, completeWithAgent())
33+
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
34+
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
35+
36+
workspace := coderdtest.CreateWorkspace(t, client, template.ID)
37+
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
38+
39+
// Create a provisioner that's working on a job.
40+
pd1 := dbgen.ProvisionerDaemon(t, coderdAPI.Database, database.ProvisionerDaemon{
41+
Name: "provisioner-1",
42+
CreatedAt: timeParse(t, "2006-01-02", "2024-12-20"),
43+
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
44+
})
45+
w1 := dbgen.Workspace(t, coderdAPI.Database, database.WorkspaceTable{
46+
OwnerID: memberUser.ID,
47+
TemplateID: template.ID,
48+
})
49+
wb1ID := uuid.MustParse("00000000-0000-0000-bbbb-000000000001")
50+
job1 := dbgen.ProvisionerJob(t, db, coderdAPI.Pubsub, database.ProvisionerJob{
51+
ID: uuid.MustParse("00000000-0000-0000-cccc-000000000001"),
52+
WorkerID: uuid.NullUUID{UUID: pd1.ID, Valid: true},
53+
Input: json.RawMessage(`{"workspace_build_id":"` + wb1ID.String() + `"}`),
54+
StartedAt: sql.NullTime{Time: coderdAPI.Clock.Now(), Valid: true},
55+
})
56+
dbgen.WorkspaceBuild(t, coderdAPI.Database, database.WorkspaceBuild{
57+
ID: wb1ID,
58+
JobID: job1.ID,
59+
WorkspaceID: w1.ID,
60+
TemplateVersionID: version.ID,
61+
})
62+
63+
// Create another provisioner that completed a job and is offline.
64+
pd2 := dbgen.ProvisionerDaemon(t, coderdAPI.Database, database.ProvisionerDaemon{
65+
Name: "provisioner-2",
66+
CreatedAt: timeParse(t, "2006-01-02", "2024-12-20"),
67+
LastSeenAt: sql.NullTime{Time: coderdAPI.Clock.Now().Add(-time.Hour), Valid: true},
68+
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
69+
})
70+
w2 := dbgen.Workspace(t, coderdAPI.Database, database.WorkspaceTable{
71+
OwnerID: memberUser.ID,
72+
TemplateID: template.ID,
73+
})
74+
wb2ID := uuid.MustParse("00000000-0000-0000-bbbb-000000000002")
75+
job2 := dbgen.ProvisionerJob(t, db, coderdAPI.Pubsub, database.ProvisionerJob{
76+
ID: uuid.MustParse("00000000-0000-0000-cccc-000000000002"),
77+
WorkerID: uuid.NullUUID{UUID: pd2.ID, Valid: true},
78+
Input: json.RawMessage(`{"workspace_build_id":"` + wb2ID.String() + `"}`),
79+
StartedAt: sql.NullTime{Time: coderdAPI.Clock.Now().Add(-2 * time.Hour), Valid: true},
80+
CompletedAt: sql.NullTime{Time: coderdAPI.Clock.Now().Add(-time.Hour), Valid: true},
81+
})
82+
dbgen.WorkspaceBuild(t, coderdAPI.Database, database.WorkspaceBuild{
83+
ID: wb2ID,
84+
JobID: job2.ID,
85+
WorkspaceID: w2.ID,
86+
TemplateVersionID: version.ID,
87+
})
88+
89+
// Create a provisioner that is idle.
90+
pd3 := dbgen.ProvisionerDaemon(t, coderdAPI.Database, database.ProvisionerDaemon{
91+
Name: "provisioner-3",
92+
CreatedAt: timeParse(t, "2006-01-02", "2024-12-20"),
93+
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
94+
})
95+
_ = pd3
2596

26-
db, ps := dbtestutil.NewDB(t, dbtestutil.WithDumpOnFailure())
27-
client, _, coderdAPI := coderdtest.NewWithAPI(t, &coderdtest.Options{
28-
IncludeProvisionerDaemon: true,
29-
Database: db,
30-
Pubsub: ps,
31-
})
32-
owner := coderdtest.CreateFirstUser(t, client)
33-
member, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
34-
35-
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, completeWithAgent())
36-
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
37-
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
38-
39-
workspace := coderdtest.CreateWorkspace(t, client, template.ID)
40-
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
41-
42-
// Create a provisioner that's working on a job.
43-
pd1 := dbgen.ProvisionerDaemon(t, coderdAPI.Database, database.ProvisionerDaemon{
44-
Name: "provisioner-1",
45-
CreatedAt: timeParse(t, "2006-01-02", "2024-12-20"),
46-
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
47-
})
48-
w1 := dbgen.Workspace(t, coderdAPI.Database, database.WorkspaceTable{
49-
OwnerID: memberUser.ID,
50-
TemplateID: template.ID,
51-
})
52-
wb1ID := uuid.MustParse("00000000-0000-0000-bbbb-000000000001")
53-
job1 := dbgen.ProvisionerJob(t, db, coderdAPI.Pubsub, database.ProvisionerJob{
54-
ID: uuid.MustParse("00000000-0000-0000-cccc-000000000001"),
55-
WorkerID: uuid.NullUUID{UUID: pd1.ID, Valid: true},
56-
Input: json.RawMessage(`{"workspace_build_id":"` + wb1ID.String() + `"}`),
57-
StartedAt: sql.NullTime{Time: coderdAPI.Clock.Now(), Valid: true},
58-
})
59-
dbgen.WorkspaceBuild(t, coderdAPI.Database, database.WorkspaceBuild{
60-
ID: wb1ID,
61-
JobID: job1.ID,
62-
WorkspaceID: w1.ID,
63-
TemplateVersionID: version.ID,
64-
})
65-
66-
// Create another provisioner that completed a job and is offline.
67-
pd2 := dbgen.ProvisionerDaemon(t, coderdAPI.Database, database.ProvisionerDaemon{
68-
Name: "provisioner-2",
69-
CreatedAt: timeParse(t, "2006-01-02", "2024-12-20"),
70-
LastSeenAt: sql.NullTime{Time: coderdAPI.Clock.Now().Add(-time.Hour), Valid: true},
71-
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
72-
})
73-
w2 := dbgen.Workspace(t, coderdAPI.Database, database.WorkspaceTable{
74-
OwnerID: memberUser.ID,
75-
TemplateID: template.ID,
76-
})
77-
wb2ID := uuid.MustParse("00000000-0000-0000-bbbb-000000000002")
78-
job2 := dbgen.ProvisionerJob(t, db, coderdAPI.Pubsub, database.ProvisionerJob{
79-
ID: uuid.MustParse("00000000-0000-0000-cccc-000000000002"),
80-
WorkerID: uuid.NullUUID{UUID: pd2.ID, Valid: true},
81-
Input: json.RawMessage(`{"workspace_build_id":"` + wb2ID.String() + `"}`),
82-
StartedAt: sql.NullTime{Time: coderdAPI.Clock.Now().Add(-2 * time.Hour), Valid: true},
83-
CompletedAt: sql.NullTime{Time: coderdAPI.Clock.Now().Add(-time.Hour), Valid: true},
84-
})
85-
dbgen.WorkspaceBuild(t, coderdAPI.Database, database.WorkspaceBuild{
86-
ID: wb2ID,
87-
JobID: job2.ID,
88-
WorkspaceID: w2.ID,
89-
TemplateVersionID: version.ID,
90-
})
91-
92-
// Create a provisioner that is idle.
93-
pd3 := dbgen.ProvisionerDaemon(t, coderdAPI.Database, database.ProvisionerDaemon{
94-
Name: "provisioner-3",
95-
CreatedAt: timeParse(t, "2006-01-02", "2024-12-20"),
96-
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
97-
})
98-
_ = pd3
97+
t.Run("list", func(t *testing.T) {
98+
t.Parallel()
9999

100100
inv, root := clitest.New(t,
101101
"provisioners",
@@ -108,6 +108,22 @@ func TestProvisioners(t *testing.T) {
108108

109109
// TODO(mafredri): Verify golden output.
110110
})
111+
112+
t.Run("jobs list", func(t *testing.T) {
113+
t.Parallel()
114+
115+
inv, root := clitest.New(t,
116+
"provisioners",
117+
"jobs",
118+
"list",
119+
"--column", "id,created at,status,worker id,tags,template version id,workspace build id,type,available workers,organization,queue",
120+
)
121+
clitest.SetupConfig(t, member, root)
122+
err := inv.Run()
123+
require.NoError(t, err)
124+
125+
// TODO(mafredri): Verify golden output.
126+
})
111127
}
112128

113129
func timeParse(t *testing.T, layout, s string) time.Time {

0 commit comments

Comments
 (0)