@@ -11,6 +11,9 @@ import (
11
11
"testing"
12
12
"time"
13
13
14
+ "github.com/coder/coder/coderd/database/dbauthz"
15
+ "github.com/coder/coder/coderd/rbac"
16
+
14
17
"github.com/google/uuid"
15
18
"github.com/moby/moby/pkg/namesgenerator"
16
19
"github.com/stretchr/testify/require"
@@ -23,8 +26,15 @@ import (
23
26
// All methods take in a 'seed' object. Any provided fields in the seed will be
24
27
// maintained. Any fields omitted will have sensible defaults generated.
25
28
29
+ var genCtx = dbauthz .As (context .Background (), rbac.Subject {
30
+ ID : "owner" ,
31
+ Roles : rbac .Roles (must (rbac.RoleNames {rbac .RoleOwner ()}.Expand ())),
32
+ Groups : []string {},
33
+ Scope : rbac .ExpandableScope (rbac .ScopeAll ),
34
+ })
35
+
26
36
func AuditLog (t testing.TB , db database.Store , seed database.AuditLog ) database.AuditLog {
27
- log , err := db .InsertAuditLog (context . Background () , database.InsertAuditLogParams {
37
+ log , err := db .InsertAuditLog (genCtx , database.InsertAuditLogParams {
28
38
ID : takeFirst (seed .ID , uuid .New ()),
29
39
Time : takeFirst (seed .Time , database .Now ()),
30
40
UserID : takeFirst (seed .UserID , uuid .New ()),
@@ -52,7 +62,7 @@ func AuditLog(t testing.TB, db database.Store, seed database.AuditLog) database.
52
62
}
53
63
54
64
func Template (t testing.TB , db database.Store , seed database.Template ) database.Template {
55
- template , err := db .InsertTemplate (context . Background () , database.InsertTemplateParams {
65
+ template , err := db .InsertTemplate (genCtx , database.InsertTemplateParams {
56
66
ID : takeFirst (seed .ID , uuid .New ()),
57
67
CreatedAt : takeFirst (seed .CreatedAt , database .Now ()),
58
68
UpdatedAt : takeFirst (seed .UpdatedAt , database .Now ()),
@@ -88,7 +98,7 @@ func APIKey(t testing.TB, db database.Store, seed database.APIKey) (key database
88
98
}
89
99
}
90
100
91
- key , err := db .InsertAPIKey (context . Background () , database.InsertAPIKeyParams {
101
+ key , err := db .InsertAPIKey (genCtx , database.InsertAPIKeyParams {
92
102
ID : takeFirst (seed .ID , id ),
93
103
// 0 defaults to 86400 at the db layer
94
104
LifetimeSeconds : takeFirst (seed .LifetimeSeconds , 0 ),
@@ -108,7 +118,7 @@ func APIKey(t testing.TB, db database.Store, seed database.APIKey) (key database
108
118
}
109
119
110
120
func WorkspaceAgent (t testing.TB , db database.Store , orig database.WorkspaceAgent ) database.WorkspaceAgent {
111
- workspace , err := db .InsertWorkspaceAgent (context . Background () , database.InsertWorkspaceAgentParams {
121
+ workspace , err := db .InsertWorkspaceAgent (genCtx , database.InsertWorkspaceAgentParams {
112
122
ID : takeFirst (orig .ID , uuid .New ()),
113
123
CreatedAt : takeFirst (orig .CreatedAt , database .Now ()),
114
124
UpdatedAt : takeFirst (orig .UpdatedAt , database .Now ()),
@@ -149,7 +159,7 @@ func WorkspaceAgent(t testing.TB, db database.Store, orig database.WorkspaceAgen
149
159
}
150
160
151
161
func Workspace (t testing.TB , db database.Store , orig database.Workspace ) database.Workspace {
152
- workspace , err := db .InsertWorkspace (context . Background () , database.InsertWorkspaceParams {
162
+ workspace , err := db .InsertWorkspace (genCtx , database.InsertWorkspaceParams {
153
163
ID : takeFirst (orig .ID , uuid .New ()),
154
164
OwnerID : takeFirst (orig .OwnerID , uuid .New ()),
155
165
CreatedAt : takeFirst (orig .CreatedAt , database .Now ()),
@@ -166,7 +176,7 @@ func Workspace(t testing.TB, db database.Store, orig database.Workspace) databas
166
176
}
167
177
168
178
func WorkspaceBuild (t testing.TB , db database.Store , orig database.WorkspaceBuild ) database.WorkspaceBuild {
169
- build , err := db .InsertWorkspaceBuild (context . Background () , database.InsertWorkspaceBuildParams {
179
+ build , err := db .InsertWorkspaceBuild (genCtx , database.InsertWorkspaceBuildParams {
170
180
ID : takeFirst (orig .ID , uuid .New ()),
171
181
CreatedAt : takeFirst (orig .CreatedAt , database .Now ()),
172
182
UpdatedAt : takeFirst (orig .UpdatedAt , database .Now ()),
@@ -185,7 +195,7 @@ func WorkspaceBuild(t testing.TB, db database.Store, orig database.WorkspaceBuil
185
195
}
186
196
187
197
func User (t testing.TB , db database.Store , orig database.User ) database.User {
188
- user , err := db .InsertUser (context . Background () , database.InsertUserParams {
198
+ user , err := db .InsertUser (genCtx , database.InsertUserParams {
189
199
ID : takeFirst (orig .ID , uuid .New ()),
190
200
Email : takeFirst (orig .Email , namesgenerator .GetRandomName (1 )),
191
201
Username : takeFirst (orig .Username , namesgenerator .GetRandomName (1 )),
@@ -200,7 +210,7 @@ func User(t testing.TB, db database.Store, orig database.User) database.User {
200
210
}
201
211
202
212
func GitSSHKey (t testing.TB , db database.Store , orig database.GitSSHKey ) database.GitSSHKey {
203
- key , err := db .InsertGitSSHKey (context . Background () , database.InsertGitSSHKeyParams {
213
+ key , err := db .InsertGitSSHKey (genCtx , database.InsertGitSSHKeyParams {
204
214
UserID : takeFirst (orig .UserID , uuid .New ()),
205
215
CreatedAt : takeFirst (orig .CreatedAt , database .Now ()),
206
216
UpdatedAt : takeFirst (orig .UpdatedAt , database .Now ()),
@@ -212,7 +222,7 @@ func GitSSHKey(t testing.TB, db database.Store, orig database.GitSSHKey) databas
212
222
}
213
223
214
224
func Organization (t testing.TB , db database.Store , orig database.Organization ) database.Organization {
215
- org , err := db .InsertOrganization (context . Background () , database.InsertOrganizationParams {
225
+ org , err := db .InsertOrganization (genCtx , database.InsertOrganizationParams {
216
226
ID : takeFirst (orig .ID , uuid .New ()),
217
227
Name : takeFirst (orig .Name , namesgenerator .GetRandomName (1 )),
218
228
Description : takeFirst (orig .Description , namesgenerator .GetRandomName (1 )),
@@ -224,7 +234,7 @@ func Organization(t testing.TB, db database.Store, orig database.Organization) d
224
234
}
225
235
226
236
func OrganizationMember (t testing.TB , db database.Store , orig database.OrganizationMember ) database.OrganizationMember {
227
- mem , err := db .InsertOrganizationMember (context . Background () , database.InsertOrganizationMemberParams {
237
+ mem , err := db .InsertOrganizationMember (genCtx , database.InsertOrganizationMemberParams {
228
238
OrganizationID : takeFirst (orig .OrganizationID , uuid .New ()),
229
239
UserID : takeFirst (orig .UserID , uuid .New ()),
230
240
CreatedAt : takeFirst (orig .CreatedAt , database .Now ()),
@@ -236,7 +246,7 @@ func OrganizationMember(t testing.TB, db database.Store, orig database.Organizat
236
246
}
237
247
238
248
func Group (t testing.TB , db database.Store , orig database.Group ) database.Group {
239
- group , err := db .InsertGroup (context . Background () , database.InsertGroupParams {
249
+ group , err := db .InsertGroup (genCtx , database.InsertGroupParams {
240
250
ID : takeFirst (orig .ID , uuid .New ()),
241
251
Name : takeFirst (orig .Name , namesgenerator .GetRandomName (1 )),
242
252
OrganizationID : takeFirst (orig .OrganizationID , uuid .New ()),
@@ -253,7 +263,7 @@ func GroupMember(t testing.TB, db database.Store, orig database.GroupMember) dat
253
263
GroupID : takeFirst (orig .GroupID , uuid .New ()),
254
264
}
255
265
//nolint:gosimple
256
- err := db .InsertGroupMember (context . Background () , database.InsertGroupMemberParams {
266
+ err := db .InsertGroupMember (genCtx , database.InsertGroupMemberParams {
257
267
UserID : member .UserID ,
258
268
GroupID : member .GroupID ,
259
269
})
@@ -262,7 +272,7 @@ func GroupMember(t testing.TB, db database.Store, orig database.GroupMember) dat
262
272
}
263
273
264
274
func ProvisionerJob (t testing.TB , db database.Store , orig database.ProvisionerJob ) database.ProvisionerJob {
265
- job , err := db .InsertProvisionerJob (context . Background () , database.InsertProvisionerJobParams {
275
+ job , err := db .InsertProvisionerJob (genCtx , database.InsertProvisionerJobParams {
266
276
ID : takeFirst (orig .ID , uuid .New ()),
267
277
CreatedAt : takeFirst (orig .CreatedAt , database .Now ()),
268
278
UpdatedAt : takeFirst (orig .UpdatedAt , database .Now ()),
@@ -280,7 +290,7 @@ func ProvisionerJob(t testing.TB, db database.Store, orig database.ProvisionerJo
280
290
}
281
291
282
292
func WorkspaceApp (t testing.TB , db database.Store , orig database.WorkspaceApp ) database.WorkspaceApp {
283
- resource , err := db .InsertWorkspaceApp (context . Background () , database.InsertWorkspaceAppParams {
293
+ resource , err := db .InsertWorkspaceApp (genCtx , database.InsertWorkspaceAppParams {
284
294
ID : takeFirst (orig .ID , uuid .New ()),
285
295
CreatedAt : takeFirst (orig .CreatedAt , database .Now ()),
286
296
AgentID : takeFirst (orig .AgentID , uuid .New ()),
@@ -308,7 +318,7 @@ func WorkspaceApp(t testing.TB, db database.Store, orig database.WorkspaceApp) d
308
318
}
309
319
310
320
func WorkspaceResource (t testing.TB , db database.Store , orig database.WorkspaceResource ) database.WorkspaceResource {
311
- resource , err := db .InsertWorkspaceResource (context . Background () , database.InsertWorkspaceResourceParams {
321
+ resource , err := db .InsertWorkspaceResource (genCtx , database.InsertWorkspaceResourceParams {
312
322
ID : takeFirst (orig .ID , uuid .New ()),
313
323
CreatedAt : takeFirst (orig .CreatedAt , database .Now ()),
314
324
JobID : takeFirst (orig .JobID , uuid .New ()),
@@ -328,7 +338,7 @@ func WorkspaceResource(t testing.TB, db database.Store, orig database.WorkspaceR
328
338
}
329
339
330
340
func WorkspaceResourceMetadatums (t testing.TB , db database.Store , seed database.WorkspaceResourceMetadatum ) []database.WorkspaceResourceMetadatum {
331
- meta , err := db .InsertWorkspaceResourceMetadata (context . Background () , database.InsertWorkspaceResourceMetadataParams {
341
+ meta , err := db .InsertWorkspaceResourceMetadata (genCtx , database.InsertWorkspaceResourceMetadataParams {
332
342
WorkspaceResourceID : takeFirst (seed .WorkspaceResourceID , uuid .New ()),
333
343
Key : []string {takeFirst (seed .Key , namesgenerator .GetRandomName (1 ))},
334
344
Value : []string {takeFirst (seed .Value .String , namesgenerator .GetRandomName (1 ))},
@@ -343,7 +353,7 @@ func WorkspaceProxy(t testing.TB, db database.Store, orig database.WorkspaceProx
343
353
require .NoError (t , err , "generate secret" )
344
354
hashedSecret := sha256 .Sum256 ([]byte (secret ))
345
355
346
- proxy , err := db .InsertWorkspaceProxy (context . Background () , database.InsertWorkspaceProxyParams {
356
+ proxy , err := db .InsertWorkspaceProxy (genCtx , database.InsertWorkspaceProxyParams {
347
357
ID : takeFirst (orig .ID , uuid .New ()),
348
358
Name : takeFirst (orig .Name , namesgenerator .GetRandomName (1 )),
349
359
DisplayName : takeFirst (orig .DisplayName , namesgenerator .GetRandomName (1 )),
@@ -356,7 +366,7 @@ func WorkspaceProxy(t testing.TB, db database.Store, orig database.WorkspaceProx
356
366
357
367
// Also set these fields if the caller wants them.
358
368
if orig .Url != "" || orig .WildcardHostname != "" {
359
- proxy , err = db .RegisterWorkspaceProxy (context . Background () , database.RegisterWorkspaceProxyParams {
369
+ proxy , err = db .RegisterWorkspaceProxy (genCtx , database.RegisterWorkspaceProxyParams {
360
370
Url : orig .Url ,
361
371
WildcardHostname : orig .WildcardHostname ,
362
372
ID : proxy .ID ,
@@ -367,7 +377,7 @@ func WorkspaceProxy(t testing.TB, db database.Store, orig database.WorkspaceProx
367
377
}
368
378
369
379
func File (t testing.TB , db database.Store , orig database.File ) database.File {
370
- file , err := db .InsertFile (context . Background () , database.InsertFileParams {
380
+ file , err := db .InsertFile (genCtx , database.InsertFileParams {
371
381
ID : takeFirst (orig .ID , uuid .New ()),
372
382
Hash : takeFirst (orig .Hash , hex .EncodeToString (make ([]byte , 32 ))),
373
383
CreatedAt : takeFirst (orig .CreatedAt , database .Now ()),
@@ -380,7 +390,7 @@ func File(t testing.TB, db database.Store, orig database.File) database.File {
380
390
}
381
391
382
392
func UserLink (t testing.TB , db database.Store , orig database.UserLink ) database.UserLink {
383
- link , err := db .InsertUserLink (context . Background () , database.InsertUserLinkParams {
393
+ link , err := db .InsertUserLink (genCtx , database.InsertUserLinkParams {
384
394
UserID : takeFirst (orig .UserID , uuid .New ()),
385
395
LoginType : takeFirst (orig .LoginType , database .LoginTypeGithub ),
386
396
LinkedID : takeFirst (orig .LinkedID ),
@@ -394,7 +404,7 @@ func UserLink(t testing.TB, db database.Store, orig database.UserLink) database.
394
404
}
395
405
396
406
func GitAuthLink (t testing.TB , db database.Store , orig database.GitAuthLink ) database.GitAuthLink {
397
- link , err := db .InsertGitAuthLink (context . Background () , database.InsertGitAuthLinkParams {
407
+ link , err := db .InsertGitAuthLink (genCtx , database.InsertGitAuthLinkParams {
398
408
ProviderID : takeFirst (orig .ProviderID , uuid .New ().String ()),
399
409
UserID : takeFirst (orig .UserID , uuid .New ()),
400
410
OAuthAccessToken : takeFirst (orig .OAuthAccessToken , uuid .NewString ()),
@@ -409,7 +419,7 @@ func GitAuthLink(t testing.TB, db database.Store, orig database.GitAuthLink) dat
409
419
}
410
420
411
421
func TemplateVersion (t testing.TB , db database.Store , orig database.TemplateVersion ) database.TemplateVersion {
412
- version , err := db .InsertTemplateVersion (context . Background () , database.InsertTemplateVersionParams {
422
+ version , err := db .InsertTemplateVersion (genCtx , database.InsertTemplateVersionParams {
413
423
ID : takeFirst (orig .ID , uuid .New ()),
414
424
TemplateID : orig .TemplateID ,
415
425
OrganizationID : takeFirst (orig .OrganizationID , uuid .New ()),
@@ -425,7 +435,7 @@ func TemplateVersion(t testing.TB, db database.Store, orig database.TemplateVers
425
435
}
426
436
427
437
func TemplateVersionVariable (t testing.TB , db database.Store , orig database.TemplateVersionVariable ) database.TemplateVersionVariable {
428
- version , err := db .InsertTemplateVersionVariable (context . Background () , database.InsertTemplateVersionVariableParams {
438
+ version , err := db .InsertTemplateVersionVariable (genCtx , database.InsertTemplateVersionVariableParams {
429
439
TemplateVersionID : takeFirst (orig .TemplateVersionID , uuid .New ()),
430
440
Name : takeFirst (orig .Name , namesgenerator .GetRandomName (1 )),
431
441
Description : takeFirst (orig .Description , namesgenerator .GetRandomName (1 )),
@@ -440,7 +450,7 @@ func TemplateVersionVariable(t testing.TB, db database.Store, orig database.Temp
440
450
}
441
451
442
452
func ParameterSchema (t testing.TB , db database.Store , seed database.ParameterSchema ) database.ParameterSchema {
443
- scheme , err := db .InsertParameterSchema (context . Background () , database.InsertParameterSchemaParams {
453
+ scheme , err := db .InsertParameterSchema (genCtx , database.InsertParameterSchemaParams {
444
454
ID : takeFirst (seed .ID , uuid .New ()),
445
455
JobID : takeFirst (seed .JobID , uuid .New ()),
446
456
CreatedAt : takeFirst (seed .CreatedAt , database .Now ()),
@@ -464,7 +474,7 @@ func ParameterSchema(t testing.TB, db database.Store, seed database.ParameterSch
464
474
}
465
475
466
476
func ParameterValue (t testing.TB , db database.Store , seed database.ParameterValue ) database.ParameterValue {
467
- scheme , err := db .InsertParameterValue (context . Background () , database.InsertParameterValueParams {
477
+ scheme , err := db .InsertParameterValue (genCtx , database.InsertParameterValueParams {
468
478
ID : takeFirst (seed .ID , uuid .New ()),
469
479
Name : takeFirst (seed .Name , namesgenerator .GetRandomName (1 )),
470
480
CreatedAt : takeFirst (seed .CreatedAt , database .Now ()),
@@ -483,7 +493,7 @@ func WorkspaceAgentStat(t testing.TB, db database.Store, orig database.Workspace
483
493
if orig .ConnectionsByProto == nil {
484
494
orig .ConnectionsByProto = json .RawMessage ([]byte ("{}" ))
485
495
}
486
- scheme , err := db .InsertWorkspaceAgentStat (context . Background () , database.InsertWorkspaceAgentStatParams {
496
+ scheme , err := db .InsertWorkspaceAgentStat (genCtx , database.InsertWorkspaceAgentStatParams {
487
497
ID : takeFirst (orig .ID , uuid .New ()),
488
498
CreatedAt : takeFirst (orig .CreatedAt , database .Now ()),
489
499
UserID : takeFirst (orig .UserID , uuid .New ()),
@@ -505,3 +515,10 @@ func WorkspaceAgentStat(t testing.TB, db database.Store, orig database.Workspace
505
515
require .NoError (t , err , "insert workspace agent stat" )
506
516
return scheme
507
517
}
518
+
519
+ func must [V any ](v V , err error ) V {
520
+ if err != nil {
521
+ panic (err )
522
+ }
523
+ return v
524
+ }
0 commit comments