6
6
"encoding/json"
7
7
"io"
8
8
"net/url"
9
+ "slices"
9
10
"strconv"
10
11
"strings"
11
12
"sync"
@@ -22,6 +23,7 @@ import (
22
23
"storj.io/drpc"
23
24
24
25
"cdr.dev/slog/sloggers/slogtest"
26
+ "github.com/coder/coder/v2/coderd/rbac"
25
27
"github.com/coder/quartz"
26
28
"github.com/coder/serpent"
27
29
@@ -203,6 +205,12 @@ func TestAcquireJob(t *testing.T) {
203
205
GroupID : group1 .ID ,
204
206
})
205
207
require .NoError (t , err )
208
+ dbgen .OrganizationMember (t , db , database.OrganizationMember {
209
+ UserID : user .ID ,
210
+ OrganizationID : pd .OrganizationID ,
211
+ Roles : []string {rbac .RoleOrgAuditor ()},
212
+ })
213
+
206
214
link := dbgen .UserLink (t , db , database.UserLink {
207
215
LoginType : database .LoginTypeOIDC ,
208
216
UserID : user .ID ,
@@ -350,7 +358,7 @@ func TestAcquireJob(t *testing.T) {
350
358
WorkspaceOwnerEmail : user .Email ,
351
359
WorkspaceOwnerName : user .Name ,
352
360
WorkspaceOwnerOidcAccessToken : link .OAuthAccessToken ,
353
- WorkspaceOwnerGroups : []string {group1 .Name },
361
+ WorkspaceOwnerGroups : []string {"Everyone" , group1 .Name },
354
362
WorkspaceId : workspace .ID .String (),
355
363
WorkspaceOwnerId : user .ID .String (),
356
364
TemplateId : template .ID .String (),
@@ -361,11 +369,15 @@ func TestAcquireJob(t *testing.T) {
361
369
WorkspaceOwnerSshPrivateKey : sshKey .PrivateKey ,
362
370
WorkspaceBuildId : build .ID .String (),
363
371
WorkspaceOwnerLoginType : string (user .LoginType ),
364
- WorkspaceOwnerRbacRoles : []* sdkproto.Role {{Name : "member" , OrgId : pd .OrganizationID .String ()}},
372
+ WorkspaceOwnerRbacRoles : []* sdkproto.Role {{Name : rbac . RoleOrgMember (), OrgId : pd . OrganizationID . String ()}, { Name : "member" , OrgId : "" }, { Name : rbac . RoleOrgAuditor () , OrgId : pd .OrganizationID .String ()}},
365
373
}
366
374
if prebuiltWorkspace {
367
375
wantedMetadata .IsPrebuild = true
368
376
}
377
+
378
+ slices .SortFunc (wantedMetadata .WorkspaceOwnerRbacRoles , func (a , b * sdkproto.Role ) int {
379
+ return strings .Compare (a .Name + a .OrgId , b .Name + b .OrgId )
380
+ })
369
381
want , err := json .Marshal (& proto.AcquiredJob_WorkspaceBuild_ {
370
382
WorkspaceBuild : & proto.AcquiredJob_WorkspaceBuild {
371
383
WorkspaceBuildId : build .ID .String (),
@@ -467,6 +479,13 @@ func TestAcquireJob(t *testing.T) {
467
479
job , err := tc .acquire (ctx , srv )
468
480
require .NoError (t , err )
469
481
482
+ // sort
483
+ if wk , ok := job .Type .(* proto.AcquiredJob_WorkspaceBuild_ ); ok {
484
+ slices .SortFunc (wk .WorkspaceBuild .Metadata .WorkspaceOwnerRbacRoles , func (a , b * sdkproto.Role ) int {
485
+ return strings .Compare (a .Name + a .OrgId , b .Name + b .OrgId )
486
+ })
487
+ }
488
+
470
489
got , err := json .Marshal (job .Type )
471
490
require .NoError (t , err )
472
491
0 commit comments