@@ -53,7 +53,7 @@ func TestEnterpriseListOrganizationMembers(t *testing.T) {
53
53
OrganizationID : owner .OrganizationID ,
54
54
}, rbac .ScopedRoleOrgAdmin (owner .OrganizationID ))
55
55
56
- inv , root := clitest .New (t , "organization" , "members" , "-c" , "user_id,username,organization_roles" )
56
+ inv , root := clitest .New (t , "organization" , "members" , "list" , " -c" , "user_id,username,organization_roles" )
57
57
clitest .SetupConfig (t , client , root )
58
58
59
59
buf := new (bytes.Buffer )
@@ -66,3 +66,57 @@ func TestEnterpriseListOrganizationMembers(t *testing.T) {
66
66
require .Contains (t , buf .String (), customRole .DisplayName )
67
67
})
68
68
}
69
+
70
+ func TestAssignOrganizationMemberRole (t * testing.T ) {
71
+ t .Parallel ()
72
+
73
+ t .Run ("OK" , func (t * testing.T ) {
74
+ t .Parallel ()
75
+ dv := coderdtest .DeploymentValues (t )
76
+ dv .Experiments = []string {string (codersdk .ExperimentCustomRoles )}
77
+
78
+ ownerClient , owner := coderdenttest .New (t , & coderdenttest.Options {
79
+ Options : & coderdtest.Options {
80
+ DeploymentValues : dv ,
81
+ },
82
+ LicenseOptions : & coderdenttest.LicenseOptions {
83
+ Features : license.Features {
84
+ codersdk .FeatureCustomRoles : 1 ,
85
+ },
86
+ },
87
+ })
88
+ _ , user := coderdtest .CreateAnotherUser (t , ownerClient , owner .OrganizationID , rbac .RoleUserAdmin ())
89
+
90
+ ctx := testutil .Context (t , testutil .WaitMedium )
91
+ // nolint:gocritic // requires owner role to create
92
+ customRole , err := ownerClient .PatchOrganizationRole (ctx , owner .OrganizationID , codersdk.Role {
93
+ Name : "custom-role" ,
94
+ OrganizationID : owner .OrganizationID .String (),
95
+ DisplayName : "Custom Role" ,
96
+ SitePermissions : nil ,
97
+ OrganizationPermissions : codersdk .CreatePermissions (map [codersdk.RBACResource ][]codersdk.RBACAction {
98
+ codersdk .ResourceWorkspace : {codersdk .ActionRead },
99
+ }),
100
+ UserPermissions : nil ,
101
+ })
102
+ require .NoError (t , err )
103
+
104
+ inv , root := clitest .New (t , "organization" , "members" , "edit-roles" , user .Username , codersdk .RoleOrganizationAdmin , customRole .Name )
105
+ // nolint:gocritic // you cannot change your own roles
106
+ clitest .SetupConfig (t , ownerClient , root )
107
+
108
+ buf := new (bytes.Buffer )
109
+ inv .Stdout = buf
110
+ err = inv .WithContext (ctx ).Run ()
111
+ require .NoError (t , err )
112
+ require .Contains (t , buf .String (), must (rbac .RoleByName (rbac .ScopedRoleOrgAdmin (owner .OrganizationID ))).DisplayName )
113
+ require .Contains (t , buf .String (), customRole .DisplayName )
114
+ })
115
+ }
116
+
117
+ func must [V any ](v V , err error ) V {
118
+ if err != nil {
119
+ panic (err )
120
+ }
121
+ return v
122
+ }
0 commit comments