@@ -68,4 +68,315 @@ func (s *MethodTestSuite) TestWorkspace() {
68
68
return methodCase (inputs ([]uuid.UUID {res .ID }), asserts (ws , rbac .ActionRead ))
69
69
})
70
70
})
71
+ s .Run ("UpdateWorkspaceAgentLifecycleStateByID" , func () {
72
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
73
+ ws := dbgen .Workspace (t , db , database.Workspace {})
74
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
75
+ res := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : build .JobID })
76
+ agt := dbgen .WorkspaceAgent (t , db , database.WorkspaceAgent {ResourceID : res .ID })
77
+ return methodCase (inputs (database.UpdateWorkspaceAgentLifecycleStateByIDParams {
78
+ ID : agt .ID ,
79
+ LifecycleState : database .WorkspaceAgentLifecycleStateCreated ,
80
+ }), asserts (ws , rbac .ActionUpdate ))
81
+ })
82
+ })
83
+ s .Run ("GetWorkspaceAppByAgentIDAndSlug" , func () {
84
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
85
+ ws := dbgen .Workspace (t , db , database.Workspace {})
86
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
87
+ res := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : build .JobID })
88
+ agt := dbgen .WorkspaceAgent (t , db , database.WorkspaceAgent {ResourceID : res .ID })
89
+ app := dbgen .WorkspaceApp (t , db , database.WorkspaceApp {AgentID : agt .ID })
90
+
91
+ return methodCase (inputs (database.GetWorkspaceAppByAgentIDAndSlugParams {
92
+ AgentID : agt .ID ,
93
+ Slug : app .Slug ,
94
+ }), asserts (ws , rbac .ActionRead ))
95
+ })
96
+ })
97
+ s .Run ("GetWorkspaceAppsByAgentID" , func () {
98
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
99
+ ws := dbgen .Workspace (t , db , database.Workspace {})
100
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
101
+ res := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : build .JobID })
102
+ agt := dbgen .WorkspaceAgent (t , db , database.WorkspaceAgent {ResourceID : res .ID })
103
+ _ = dbgen .WorkspaceApp (t , db , database.WorkspaceApp {AgentID : agt .ID })
104
+ _ = dbgen .WorkspaceApp (t , db , database.WorkspaceApp {AgentID : agt .ID })
105
+
106
+ return methodCase (inputs (agt .ID ), asserts (ws , rbac .ActionRead ))
107
+ })
108
+ })
109
+ s .Run ("GetWorkspaceAppsByAgentIDs" , func () {
110
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
111
+ aWs := dbgen .Workspace (t , db , database.Workspace {})
112
+ aBuild := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : aWs .ID , JobID : uuid .New ()})
113
+ aRes := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : aBuild .JobID })
114
+ aAgt := dbgen .WorkspaceAgent (t , db , database.WorkspaceAgent {ResourceID : aRes .ID })
115
+ a := dbgen .WorkspaceApp (t , db , database.WorkspaceApp {AgentID : aAgt .ID })
116
+
117
+ bWs := dbgen .Workspace (t , db , database.Workspace {})
118
+ bBuild := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : bWs .ID , JobID : uuid .New ()})
119
+ bRes := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : bBuild .JobID })
120
+ bAgt := dbgen .WorkspaceAgent (t , db , database.WorkspaceAgent {ResourceID : bRes .ID })
121
+ b := dbgen .WorkspaceApp (t , db , database.WorkspaceApp {AgentID : bAgt .ID })
122
+
123
+ return methodCase (inputs ([]uuid.UUID {a .AgentID , b .AgentID }), asserts (aWs , rbac .ActionRead , bWs , rbac .ActionRead ))
124
+ })
125
+ })
126
+ s .Run ("GetWorkspaceBuildByID" , func () {
127
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
128
+ ws := dbgen .Workspace (t , db , database.Workspace {})
129
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID })
130
+ return methodCase (inputs (build .ID ), asserts (ws , rbac .ActionRead ))
131
+ })
132
+ })
133
+ s .Run ("GetWorkspaceBuildByJobID" , func () {
134
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
135
+ ws := dbgen .Workspace (t , db , database.Workspace {})
136
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID })
137
+ return methodCase (inputs (build .JobID ), asserts (ws , rbac .ActionRead ))
138
+ })
139
+ })
140
+ s .Run ("GetWorkspaceBuildByWorkspaceIDAndBuildNumber" , func () {
141
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
142
+ ws := dbgen .Workspace (t , db , database.Workspace {})
143
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , BuildNumber : 10 })
144
+ return methodCase (inputs (database.GetWorkspaceBuildByWorkspaceIDAndBuildNumberParams {
145
+ WorkspaceID : ws .ID ,
146
+ BuildNumber : build .BuildNumber ,
147
+ }), asserts (ws , rbac .ActionRead ))
148
+ })
149
+ })
150
+ s .Run ("GetWorkspaceBuildParameters" , func () {
151
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
152
+ ws := dbgen .Workspace (t , db , database.Workspace {})
153
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID })
154
+ return methodCase (inputs (build .ID ), asserts (ws , rbac .ActionRead ))
155
+ })
156
+ })
157
+ s .Run ("GetWorkspaceBuildsByWorkspaceID" , func () {
158
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
159
+ ws := dbgen .Workspace (t , db , database.Workspace {})
160
+ _ = dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , BuildNumber : 1 })
161
+ _ = dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , BuildNumber : 2 })
162
+ _ = dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , BuildNumber : 3 })
163
+ return methodCase (inputs (database.GetWorkspaceBuildsByWorkspaceIDParams {WorkspaceID : ws .ID }), asserts (ws , rbac .ActionRead ))
164
+ })
165
+ })
166
+ s .Run ("GetWorkspaceByAgentID" , func () {
167
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
168
+ ws := dbgen .Workspace (t , db , database.Workspace {})
169
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
170
+ res := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : build .JobID })
171
+ agt := dbgen .WorkspaceAgent (t , db , database.WorkspaceAgent {ResourceID : res .ID })
172
+ return methodCase (inputs (agt .ID ), asserts (ws , rbac .ActionRead ))
173
+ })
174
+ })
175
+ s .Run ("GetWorkspaceByOwnerIDAndName" , func () {
176
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
177
+ ws := dbgen .Workspace (t , db , database.Workspace {})
178
+ return methodCase (inputs (database.GetWorkspaceByOwnerIDAndNameParams {
179
+ OwnerID : ws .OwnerID ,
180
+ Deleted : ws .Deleted ,
181
+ Name : ws .Name ,
182
+ }), asserts (ws , rbac .ActionRead ))
183
+ })
184
+ })
185
+ s .Run ("GetWorkspaceResourceByID" , func () {
186
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
187
+ ws := dbgen .Workspace (t , db , database.Workspace {})
188
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
189
+ res := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : build .JobID })
190
+ return methodCase (inputs (res .ID ), asserts (ws , rbac .ActionRead ))
191
+ })
192
+ })
193
+ s .Run ("GetWorkspaceResourceMetadataByResourceIDs" , func () {
194
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
195
+ ws := dbgen .Workspace (t , db , database.Workspace {})
196
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
197
+ a := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : build .JobID })
198
+ b := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : build .JobID })
199
+ return methodCase (inputs ([]uuid.UUID {a .ID , b .ID }), asserts (ws , []rbac.Action {rbac .ActionRead , rbac .ActionRead }))
200
+ })
201
+ })
202
+ s .Run ("Build/GetWorkspaceResourcesByJobID" , func () {
203
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
204
+ ws := dbgen .Workspace (t , db , database.Workspace {})
205
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
206
+ job := dbgen .ProvisionerJob (t , db , database.ProvisionerJob {ID : build .JobID , Type : database .ProvisionerJobTypeWorkspaceBuild })
207
+ return methodCase (inputs (job .ID ), asserts (ws , rbac .ActionRead ))
208
+ })
209
+ })
210
+ s .Run ("Template/GetWorkspaceResourcesByJobID" , func () {
211
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
212
+ tpl := dbgen .Template (t , db , database.Template {})
213
+ v := dbgen .TemplateVersion (t , db , database.TemplateVersion {TemplateID : uuid.NullUUID {UUID : tpl .ID , Valid : true }, JobID : uuid .New ()})
214
+ job := dbgen .ProvisionerJob (t , db , database.ProvisionerJob {ID : v .JobID , Type : database .ProvisionerJobTypeTemplateVersionImport })
215
+ return methodCase (inputs (job .ID ), asserts (v .RBACObject (tpl ), []rbac.Action {rbac .ActionRead , rbac .ActionRead }))
216
+ })
217
+ })
218
+ s .Run ("GetWorkspaceResourcesByJobIDs" , func () {
219
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
220
+ tpl := dbgen .Template (t , db , database.Template {})
221
+ v := dbgen .TemplateVersion (t , db , database.TemplateVersion {TemplateID : uuid.NullUUID {UUID : tpl .ID , Valid : true }, JobID : uuid .New ()})
222
+ tJob := dbgen .ProvisionerJob (t , db , database.ProvisionerJob {ID : v .JobID , Type : database .ProvisionerJobTypeTemplateVersionImport })
223
+
224
+ ws := dbgen .Workspace (t , db , database.Workspace {})
225
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
226
+ wJob := dbgen .ProvisionerJob (t , db , database.ProvisionerJob {ID : build .JobID , Type : database .ProvisionerJobTypeWorkspaceBuild })
227
+ return methodCase (inputs ([]uuid.UUID {tJob .ID , wJob .ID }), asserts (v .RBACObject (tpl ), rbac .ActionRead , ws , rbac .ActionRead ))
228
+ })
229
+ })
230
+ s .Run ("InsertWorkspace" , func () {
231
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
232
+ u := dbgen .User (t , db , database.User {})
233
+ o := dbgen .Organization (t , db , database.Organization {})
234
+ return methodCase (inputs (database.InsertWorkspaceParams {
235
+ ID : uuid .New (),
236
+ OwnerID : u .ID ,
237
+ OrganizationID : o .ID ,
238
+ }), asserts (rbac .ResourceWorkspace .WithOwner (u .ID .String ()).InOrg (o .ID ), rbac .ActionCreate ))
239
+ })
240
+ })
241
+ s .Run ("Start/InsertWorkspaceBuild" , func () {
242
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
243
+ w := dbgen .Workspace (t , db , database.Workspace {})
244
+ return methodCase (inputs (database.InsertWorkspaceBuildParams {
245
+ WorkspaceID : w .ID ,
246
+ Transition : database .WorkspaceTransitionStart ,
247
+ Reason : database .BuildReasonInitiator ,
248
+ }), asserts (w , rbac .ActionUpdate ))
249
+ })
250
+ })
251
+ s .Run ("Delete/InsertWorkspaceBuild" , func () {
252
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
253
+ w := dbgen .Workspace (t , db , database.Workspace {})
254
+ return methodCase (inputs (database.InsertWorkspaceBuildParams {
255
+ WorkspaceID : w .ID ,
256
+ Transition : database .WorkspaceTransitionDelete ,
257
+ Reason : database .BuildReasonInitiator ,
258
+ }), asserts (w , rbac .ActionDelete ))
259
+ })
260
+ })
261
+ s .Run ("InsertWorkspaceBuildParameters" , func () {
262
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
263
+ w := dbgen .Workspace (t , db , database.Workspace {})
264
+ b := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : w .ID })
265
+ return methodCase (inputs (database.InsertWorkspaceBuildParametersParams {
266
+ WorkspaceBuildID : b .ID ,
267
+ Name : []string {"foo" , "bar" },
268
+ Value : []string {"baz" , "qux" },
269
+ }), asserts (w , rbac .ActionUpdate ))
270
+ })
271
+ })
272
+ s .Run ("UpdateWorkspace" , func () {
273
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
274
+ w := dbgen .Workspace (t , db , database.Workspace {})
275
+ return methodCase (inputs (database.UpdateWorkspaceParams {
276
+ ID : w .ID ,
277
+ }), asserts (w , rbac .ActionUpdate ))
278
+ })
279
+ })
280
+ s .Run ("UpdateWorkspaceAgentConnectionByID" , func () {
281
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
282
+ ws := dbgen .Workspace (t , db , database.Workspace {})
283
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
284
+ res := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : build .JobID })
285
+ agt := dbgen .WorkspaceAgent (t , db , database.WorkspaceAgent {ResourceID : res .ID })
286
+ return methodCase (inputs (database.UpdateWorkspaceAgentConnectionByIDParams {
287
+ ID : agt .ID ,
288
+ }), asserts (ws , rbac .ActionUpdate ))
289
+ })
290
+ })
291
+ s .Run ("InsertAgentStat" , func () {
292
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
293
+ ws := dbgen .Workspace (t , db , database.Workspace {})
294
+ return methodCase (inputs (database.InsertAgentStatParams {
295
+ WorkspaceID : ws .ID ,
296
+ }), asserts (ws , rbac .ActionUpdate ))
297
+ })
298
+ })
299
+ s .Run ("UpdateWorkspaceAgentVersionByID" , func () {
300
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
301
+ ws := dbgen .Workspace (t , db , database.Workspace {})
302
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
303
+ res := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : build .JobID })
304
+ agt := dbgen .WorkspaceAgent (t , db , database.WorkspaceAgent {ResourceID : res .ID })
305
+ return methodCase (inputs (database.UpdateWorkspaceAgentVersionByIDParams {
306
+ ID : agt .ID ,
307
+ Version : "test" ,
308
+ }), asserts (ws , rbac .ActionUpdate ))
309
+ })
310
+ })
311
+ s .Run ("UpdateWorkspaceAppHealthByID" , func () {
312
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
313
+ ws := dbgen .Workspace (t , db , database.Workspace {})
314
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
315
+ res := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : build .JobID })
316
+ agt := dbgen .WorkspaceAgent (t , db , database.WorkspaceAgent {ResourceID : res .ID })
317
+ app := dbgen .WorkspaceApp (t , db , database.WorkspaceApp {AgentID : agt .ID })
318
+ return methodCase (inputs (database.UpdateWorkspaceAppHealthByIDParams {
319
+ ID : app .ID ,
320
+ Health : database .WorkspaceAppHealthHealthy ,
321
+ }), asserts (ws , rbac .ActionUpdate ))
322
+ })
323
+ })
324
+ s .Run ("UpdateWorkspaceAutostart" , func () {
325
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
326
+ ws := dbgen .Workspace (t , db , database.Workspace {})
327
+ return methodCase (inputs (database.UpdateWorkspaceAutostartParams {
328
+ ID : ws .ID ,
329
+ }), asserts (ws , rbac .ActionUpdate ))
330
+ })
331
+ })
332
+ s .Run ("UpdateWorkspaceBuildByID" , func () {
333
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
334
+ ws := dbgen .Workspace (t , db , database.Workspace {})
335
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
336
+ return methodCase (inputs (database.UpdateWorkspaceBuildByIDParams {
337
+ ID : build .ID ,
338
+ }), asserts (ws , rbac .ActionUpdate ))
339
+ })
340
+ })
341
+ s .Run ("SoftDeleteWorkspaceByID" , func () {
342
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
343
+ ws := dbgen .Workspace (t , db , database.Workspace {})
344
+ return methodCase (inputs (ws .ID ), asserts (ws , rbac .ActionDelete ))
345
+ })
346
+ })
347
+ s .Run ("UpdateWorkspaceDeletedByID" , func () {
348
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
349
+ ws := dbgen .Workspace (t , db , database.Workspace {})
350
+ return methodCase (inputs (database.UpdateWorkspaceDeletedByIDParams {
351
+ ID : ws .ID ,
352
+ Deleted : true ,
353
+ }), asserts (ws , rbac .ActionDelete ))
354
+ })
355
+ })
356
+ s .Run ("UpdateWorkspaceLastUsedAt" , func () {
357
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
358
+ ws := dbgen .Workspace (t , db , database.Workspace {})
359
+ return methodCase (inputs (database.UpdateWorkspaceLastUsedAtParams {
360
+ ID : ws .ID ,
361
+ }), asserts (ws , rbac .ActionUpdate ))
362
+ })
363
+ })
364
+ s .Run ("UpdateWorkspaceTTL" , func () {
365
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
366
+ ws := dbgen .Workspace (t , db , database.Workspace {})
367
+ return methodCase (inputs (database.UpdateWorkspaceTTLParams {
368
+ ID : ws .ID ,
369
+ }), asserts (ws , rbac .ActionUpdate ))
370
+ })
371
+ })
372
+ s .Run ("GetWorkspaceByWorkspaceAppID" , func () {
373
+ s .RunMethodTest (func (t * testing.T , db database.Store ) MethodCase {
374
+ ws := dbgen .Workspace (t , db , database.Workspace {})
375
+ build := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {WorkspaceID : ws .ID , JobID : uuid .New ()})
376
+ res := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {JobID : build .JobID })
377
+ agt := dbgen .WorkspaceAgent (t , db , database.WorkspaceAgent {ResourceID : res .ID })
378
+ app := dbgen .WorkspaceApp (t , db , database.WorkspaceApp {AgentID : agt .ID })
379
+ return methodCase (inputs (app .ID ), asserts (ws , rbac .ActionRead ))
380
+ })
381
+ })
71
382
}
0 commit comments