Files
coder/coderd/rbac/builtin_internal_test.go
Steven Masley 35211e2190 feat: Add user roles, but do not yet enforce them (#1200)
* chore: Rework roles to be expandable by name alone
2022-04-29 09:04:19 -05:00

56 lines
1.2 KiB
Go

package rbac
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/google/uuid"
)
func TestRoleByName(t *testing.T) {
t.Parallel()
t.Run("BuiltIns", func(t *testing.T) {
t.Parallel()
testCases := []struct {
Role Role
}{
{Role: builtInRoles[admin]("")},
{Role: builtInRoles[member]("")},
{Role: builtInRoles[auditor]("")},
{Role: builtInRoles[orgAdmin](uuid.New().String())},
{Role: builtInRoles[orgAdmin](uuid.New().String())},
{Role: builtInRoles[orgAdmin](uuid.New().String())},
{Role: builtInRoles[orgMember](uuid.New().String())},
{Role: builtInRoles[orgMember](uuid.New().String())},
{Role: builtInRoles[orgMember](uuid.New().String())},
}
for _, c := range testCases {
c := c
t.Run(c.Role.Name, func(t *testing.T) {
role, err := RoleByName(c.Role.Name)
require.NoError(t, err, "role exists")
require.Equal(t, c.Role, role)
})
}
})
// nolint:paralleltest
t.Run("Errors", func(t *testing.T) {
var err error
_, err = RoleByName("")
require.Error(t, err, "empty role")
_, err = RoleByName("too:many:colons")
require.Error(t, err, "too many colons")
_, err = RoleByName(orgMember)
require.Error(t, err, "expect orgID")
})
}