MCPcopy Index your code
hub / github.com/coder/coder / TestExtractUserRoles

Function TestExtractUserRoles

coderd/httpmw/authorize_test.go:26–141  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

24)
25
26func TestExtractUserRoles(t *testing.T) {
27 t.Parallel()
28 testCases := []struct {
29 Name string
30 AddUser func(db database.Store) (database.User, []rbac.RoleIdentifier, string)
31 }{
32 {
33 Name: "Member",
34 AddUser: func(db database.Store) (database.User, []rbac.RoleIdentifier, string) {
35 user, token := addUser(t, db)
36 return user, []rbac.RoleIdentifier{rbac.RoleMember()}, token
37 },
38 },
39 {
40 Name: "Owner",
41 AddUser: func(db database.Store) (database.User, []rbac.RoleIdentifier, string) {
42 roles := []string{codersdk.RoleOwner}
43 user, token := addUser(t, db, roles...)
44 return user, []rbac.RoleIdentifier{rbac.RoleOwner(), rbac.RoleMember()}, token
45 },
46 },
47 {
48 Name: "OrgMember",
49 AddUser: func(db database.Store) (database.User, []rbac.RoleIdentifier, string) {
50 roles := []string{}
51 user, token := addUser(t, db, roles...)
52 org, err := db.InsertOrganization(context.Background(), database.InsertOrganizationParams{
53 ID: uuid.New(),
54 Name: "testorg",
55 Description: "test",
56 CreatedAt: time.Now(),
57 UpdatedAt: time.Now(),
58 })
59 require.NoError(t, err)
60
61 orgRoles := []string{}
62 _, err = db.InsertOrganizationMember(context.Background(), database.InsertOrganizationMemberParams{
63 OrganizationID: org.ID,
64 UserID: user.ID,
65 CreatedAt: time.Now(),
66 UpdatedAt: time.Now(),
67 Roles: orgRoles,
68 })
69 require.NoError(t, err)
70 return user, []rbac.RoleIdentifier{rbac.RoleMember(), rbac.ScopedRoleOrgMember(org.ID)}, token
71 },
72 },
73 {
74 Name: "MultipleOrgMember",
75 AddUser: func(db database.Store) (database.User, []rbac.RoleIdentifier, string) {
76 expected := []rbac.RoleIdentifier{}
77 user, token := addUser(t, db)
78 expected = append(expected, rbac.RoleMember())
79 for i := 0; i < 3; i++ {
80 organization, err := db.InsertOrganization(context.Background(), database.InsertOrganizationParams{
81 ID: uuid.New(),
82 Name: fmt.Sprintf("testorg%d", i),
83 Description: "test",

Callers

nothing calls this directly

Calls 15

RoleMemberFunction · 0.92
RoleOwnerFunction · 0.92
ScopedRoleOrgMemberFunction · 0.92
ScopedRoleOrgAdminFunction · 0.92
NewDBFunction · 0.92
ExtractAPIKeyMWFunction · 0.92
UserAuthorizationFunction · 0.92
addUserFunction · 0.70
InsertOrganizationMethod · 0.65
NewMethod · 0.65
RunMethod · 0.65

Tested by

no test coverage detected