@@ -16,8 +16,9 @@ import (
16
16
"github.com/coder/coder/v2/agent"
17
17
"github.com/coder/coder/v2/cli/clitest"
18
18
"github.com/coder/coder/v2/coderd/coderdtest"
19
+ "github.com/coder/coder/v2/coderd/database"
20
+ "github.com/coder/coder/v2/coderd/database/dbfake"
19
21
"github.com/coder/coder/v2/codersdk"
20
- "github.com/coder/coder/v2/provisioner/echo"
21
22
"github.com/coder/coder/v2/provisionersdk/proto"
22
23
"github.com/coder/coder/v2/pty/ptytest"
23
24
)
@@ -28,20 +29,12 @@ func TestWorkspaceAgent(t *testing.T) {
28
29
t .Run ("LogDirectory" , func (t * testing.T ) {
29
30
t .Parallel ()
30
31
31
- authToken := uuid .NewString ()
32
- client := coderdtest .New (t , & coderdtest.Options {
33
- IncludeProvisionerDaemon : true ,
34
- })
32
+ client , db := coderdtest .NewWithDatabase (t , nil )
35
33
user := coderdtest .CreateFirstUser (t , client )
36
- version := coderdtest . CreateTemplateVersion (t , client , user . OrganizationID , & echo. Responses {
37
- Parse : echo . ParseComplete ,
38
- ProvisionApply : echo . ProvisionApplyWithAgent ( authToken ) ,
34
+ ws , authToken := dbfake . WorkspaceWithAgent (t , db , database. Workspace {
35
+ OrganizationID : user . OrganizationID ,
36
+ OwnerID : user . UserID ,
39
37
})
40
- template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
41
- coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
42
- workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
43
- coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , workspace .LatestBuild .ID )
44
-
45
38
logDir := t .TempDir ()
46
39
inv , _ := clitest .New (t ,
47
40
"agent" ,
@@ -57,7 +50,7 @@ func TestWorkspaceAgent(t *testing.T) {
57
50
ctx := inv .Context ()
58
51
pty .ExpectMatchContext (ctx , "agent is starting now" )
59
52
60
- coderdtest .AwaitWorkspaceAgents (t , client , workspace .ID )
53
+ coderdtest .AwaitWorkspaceAgents (t , client , ws .ID )
61
54
62
55
info , err := os .Stat (filepath .Join (logDir , "coder-agent.log" ))
63
56
require .NoError (t , err )
@@ -68,33 +61,23 @@ func TestWorkspaceAgent(t *testing.T) {
68
61
t .Parallel ()
69
62
instanceID := "instanceidentifier"
70
63
certificates , metadataClient := coderdtest .NewAzureInstanceIdentity (t , instanceID )
71
- client := coderdtest .New (t , & coderdtest.Options {
72
- AzureCertificates : certificates ,
73
- IncludeProvisionerDaemon : true ,
64
+ client , db := coderdtest .NewWithDatabase (t , & coderdtest.Options {
65
+ AzureCertificates : certificates ,
74
66
})
75
67
user := coderdtest .CreateFirstUser (t , client )
76
- version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
77
- Parse : echo .ParseComplete ,
78
- ProvisionApply : []* proto.Response {{
79
- Type : & proto.Response_Apply {
80
- Apply : & proto.ApplyComplete {
81
- Resources : []* proto.Resource {{
82
- Name : "somename" ,
83
- Type : "someinstance" ,
84
- Agents : []* proto.Agent {{
85
- Auth : & proto.Agent_InstanceId {
86
- InstanceId : instanceID ,
87
- },
88
- }},
89
- }},
90
- },
68
+ ws := dbfake .Workspace (t , db , database.Workspace {
69
+ OrganizationID : user .OrganizationID ,
70
+ OwnerID : user .UserID ,
71
+ })
72
+ dbfake .WorkspaceBuild (t , db , ws , database.WorkspaceBuild {}, & proto.Resource {
73
+ Name : "somename" ,
74
+ Type : "someinstance" ,
75
+ Agents : []* proto.Agent {{
76
+ Auth : & proto.Agent_InstanceId {
77
+ InstanceId : instanceID ,
91
78
},
92
79
}},
93
80
})
94
- template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
95
- coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
96
- workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
97
- coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , workspace .LatestBuild .ID )
98
81
99
82
inv , _ := clitest .New (t , "agent" , "--auth" , "azure-instance-identity" , "--agent-url" , client .URL .String ())
100
83
inv = inv .WithContext (
@@ -103,8 +86,8 @@ func TestWorkspaceAgent(t *testing.T) {
103
86
)
104
87
ctx := inv .Context ()
105
88
clitest .Start (t , inv )
106
- coderdtest .AwaitWorkspaceAgents (t , client , workspace .ID )
107
- workspace , err := client .Workspace (ctx , workspace .ID )
89
+ coderdtest .AwaitWorkspaceAgents (t , client , ws .ID )
90
+ workspace , err := client .Workspace (ctx , ws .ID )
108
91
require .NoError (t , err )
109
92
resources := workspace .LatestBuild .Resources
110
93
if assert .NotEmpty (t , workspace .LatestBuild .Resources ) && assert .NotEmpty (t , resources [0 ].Agents ) {
@@ -120,33 +103,23 @@ func TestWorkspaceAgent(t *testing.T) {
120
103
t .Parallel ()
121
104
instanceID := "instanceidentifier"
122
105
certificates , metadataClient := coderdtest .NewAWSInstanceIdentity (t , instanceID )
123
- client := coderdtest .New (t , & coderdtest.Options {
124
- AWSCertificates : certificates ,
125
- IncludeProvisionerDaemon : true ,
106
+ client , db := coderdtest .NewWithDatabase (t , & coderdtest.Options {
107
+ AWSCertificates : certificates ,
126
108
})
127
109
user := coderdtest .CreateFirstUser (t , client )
128
- version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
129
- Parse : echo .ParseComplete ,
130
- ProvisionApply : []* proto.Response {{
131
- Type : & proto.Response_Apply {
132
- Apply : & proto.ApplyComplete {
133
- Resources : []* proto.Resource {{
134
- Name : "somename" ,
135
- Type : "someinstance" ,
136
- Agents : []* proto.Agent {{
137
- Auth : & proto.Agent_InstanceId {
138
- InstanceId : instanceID ,
139
- },
140
- }},
141
- }},
142
- },
110
+ ws := dbfake .Workspace (t , db , database.Workspace {
111
+ OrganizationID : user .OrganizationID ,
112
+ OwnerID : user .UserID ,
113
+ })
114
+ dbfake .WorkspaceBuild (t , db , ws , database.WorkspaceBuild {}, & proto.Resource {
115
+ Name : "somename" ,
116
+ Type : "someinstance" ,
117
+ Agents : []* proto.Agent {{
118
+ Auth : & proto.Agent_InstanceId {
119
+ InstanceId : instanceID ,
143
120
},
144
121
}},
145
122
})
146
- template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
147
- coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
148
- workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
149
- coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , workspace .LatestBuild .ID )
150
123
151
124
inv , _ := clitest .New (t , "agent" , "--auth" , "aws-instance-identity" , "--agent-url" , client .URL .String ())
152
125
inv = inv .WithContext (
@@ -155,8 +128,8 @@ func TestWorkspaceAgent(t *testing.T) {
155
128
)
156
129
clitest .Start (t , inv )
157
130
ctx := inv .Context ()
158
- coderdtest .AwaitWorkspaceAgents (t , client , workspace .ID )
159
- workspace , err := client .Workspace (ctx , workspace .ID )
131
+ coderdtest .AwaitWorkspaceAgents (t , client , ws .ID )
132
+ workspace , err := client .Workspace (ctx , ws .ID )
160
133
require .NoError (t , err )
161
134
resources := workspace .LatestBuild .Resources
162
135
if assert .NotEmpty (t , resources ) && assert .NotEmpty (t , resources [0 ].Agents ) {
@@ -172,35 +145,24 @@ func TestWorkspaceAgent(t *testing.T) {
172
145
t .Parallel ()
173
146
instanceID := "instanceidentifier"
174
147
validator , metadataClient := coderdtest .NewGoogleInstanceIdentity (t , instanceID , false )
175
- client := coderdtest .New (t , & coderdtest.Options {
176
- GoogleTokenValidator : validator ,
177
- IncludeProvisionerDaemon : true ,
148
+ client , db := coderdtest .NewWithDatabase (t , & coderdtest.Options {
149
+ GoogleTokenValidator : validator ,
178
150
})
179
151
owner := coderdtest .CreateFirstUser (t , client )
180
- member , _ := coderdtest .CreateAnotherUser (t , client , owner .OrganizationID )
181
- version := coderdtest .CreateTemplateVersion (t , client , owner .OrganizationID , & echo.Responses {
182
- Parse : echo .ParseComplete ,
183
- ProvisionApply : []* proto.Response {{
184
- Type : & proto.Response_Apply {
185
- Apply : & proto.ApplyComplete {
186
- Resources : []* proto.Resource {{
187
- Name : "somename" ,
188
- Type : "someinstance" ,
189
- Agents : []* proto.Agent {{
190
- Auth : & proto.Agent_InstanceId {
191
- InstanceId : instanceID ,
192
- },
193
- }},
194
- }},
195
- },
152
+ member , memberUser := coderdtest .CreateAnotherUser (t , client , owner .OrganizationID )
153
+ ws := dbfake .Workspace (t , db , database.Workspace {
154
+ OrganizationID : owner .OrganizationID ,
155
+ OwnerID : memberUser .ID ,
156
+ })
157
+ dbfake .WorkspaceBuild (t , db , ws , database.WorkspaceBuild {}, & proto.Resource {
158
+ Name : "somename" ,
159
+ Type : "someinstance" ,
160
+ Agents : []* proto.Agent {{
161
+ Auth : & proto.Agent_InstanceId {
162
+ InstanceId : instanceID ,
196
163
},
197
164
}},
198
165
})
199
- template := coderdtest .CreateTemplate (t , client , owner .OrganizationID , version .ID )
200
- coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
201
- workspace := coderdtest .CreateWorkspace (t , member , owner .OrganizationID , template .ID )
202
- coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , workspace .LatestBuild .ID )
203
-
204
166
inv , cfg := clitest .New (t , "agent" , "--auth" , "google-instance-identity" , "--agent-url" , client .URL .String ())
205
167
ptytest .New (t ).Attach (inv )
206
168
clitest .SetupConfig (t , member , cfg )
@@ -212,9 +174,8 @@ func TestWorkspaceAgent(t *testing.T) {
212
174
)
213
175
214
176
ctx := inv .Context ()
215
-
216
- coderdtest .AwaitWorkspaceAgents (t , client , workspace .ID )
217
- workspace , err := client .Workspace (ctx , workspace .ID )
177
+ coderdtest .AwaitWorkspaceAgents (t , client , ws .ID )
178
+ workspace , err := client .Workspace (ctx , ws .ID )
218
179
require .NoError (t , err )
219
180
resources := workspace .LatestBuild .Resources
220
181
if assert .NotEmpty (t , resources ) && assert .NotEmpty (t , resources [0 ].Agents ) {
@@ -244,19 +205,12 @@ func TestWorkspaceAgent(t *testing.T) {
244
205
t .Run ("PostStartup" , func (t * testing.T ) {
245
206
t .Parallel ()
246
207
247
- authToken := uuid .NewString ()
248
- client := coderdtest .New (t , & coderdtest.Options {
249
- IncludeProvisionerDaemon : true ,
250
- })
208
+ client , db := coderdtest .NewWithDatabase (t , nil )
251
209
user := coderdtest .CreateFirstUser (t , client )
252
- version := coderdtest . CreateTemplateVersion (t , client , user . OrganizationID , & echo. Responses {
253
- Parse : echo . ParseComplete ,
254
- ProvisionApply : echo . ProvisionApplyWithAgent ( authToken ) ,
210
+ ws , authToken := dbfake . WorkspaceWithAgent (t , db , database. Workspace {
211
+ OrganizationID : user . OrganizationID ,
212
+ OwnerID : user . UserID ,
255
213
})
256
- template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
257
- coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
258
- workspace := coderdtest .CreateWorkspace (t , client , user .OrganizationID , template .ID )
259
- coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , workspace .LatestBuild .ID )
260
214
261
215
logDir := t .TempDir ()
262
216
inv , _ := clitest .New (t ,
@@ -274,7 +228,7 @@ func TestWorkspaceAgent(t *testing.T) {
274
228
clitest .Start (t , inv )
275
229
pty .ExpectMatchContext (inv .Context (), "agent is starting now" )
276
230
277
- resources := coderdtest .AwaitWorkspaceAgents (t , client , workspace .ID )
231
+ resources := coderdtest .AwaitWorkspaceAgents (t , client , ws .ID )
278
232
require .Len (t , resources , 1 )
279
233
require .Len (t , resources [0 ].Agents , 1 )
280
234
require .Len (t , resources [0 ].Agents [0 ].Subsystems , 2 )
0 commit comments