feat: Add user roles, but do not yet enforce them (#1200)

* chore: Rework roles to be expandable by name alone
This commit is contained in:
Steven Masley
2022-04-29 09:04:19 -05:00
committed by GitHub
parent ba4c3ce3b9
commit 35211e2190
26 changed files with 1150 additions and 232 deletions

View File

@ -0,0 +1,55 @@
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")
})
}