package rbac_test import ( "testing" "github.com/google/uuid" "github.com/stretchr/testify/require" "github.com/coder/coder/coderd/rbac" ) func TestIsOrgRole(t *testing.T) { t.Parallel() randomUUID := uuid.New() testCases := []struct { RoleName string OrgRole bool OrgID string }{ // Not org roles {RoleName: rbac.RoleAdmin()}, {RoleName: rbac.RoleMember()}, {RoleName: "auditor"}, { RoleName: "a:bad:role", OrgRole: false, }, { RoleName: "", OrgRole: false, }, // Org roles { RoleName: rbac.RoleOrgAdmin(randomUUID), OrgRole: true, OrgID: randomUUID.String(), }, { RoleName: rbac.RoleOrgMember(randomUUID), OrgRole: true, OrgID: randomUUID.String(), }, { RoleName: "test:example", OrgRole: true, OrgID: "example", }, } // nolint:paralleltest for _, c := range testCases { t.Run(c.RoleName, func(t *testing.T) { orgID, ok := rbac.IsOrgRole(c.RoleName) require.Equal(t, c.OrgRole, ok, "match expected org role") require.Equal(t, c.OrgID, orgID, "match expected org id") }) } }