package rbac // Tests for RBAC role permissions and role validation. import ( "testing" "github.com/stretchr/testify/require" ) // TestRolePermissions ensures role permissions behavior is handled correctly. func TestRolePermissions(t *testing.T) { require.True(t, HasPermission(RolePlayer, PermissionPlayGame)) require.False(t, HasPermission(RolePlayer, PermissionManageSystem)) require.True(t, HasAnyPermission(RoleModerator, PermissionViewUsers, PermissionManageSystem)) require.False(t, HasAnyPermission(RolePlayer, PermissionManageSystem)) require.True(t, HasAllPermissions(RoleAdmin, PermissionManageSystem, PermissionViewDashboard)) require.False(t, HasAllPermissions(RolePlayer, PermissionViewDashboard, PermissionPlayGame)) } // TestUserHasPermission ensures user has permission behavior is handled correctly. func TestUserHasPermission(t *testing.T) { require.True(t, UserHasPermission([]string{"player"}, PermissionPlayGame)) require.False(t, UserHasPermission([]string{"player"}, PermissionManageSystem)) } // TestGetPermissionsReturnsCopy ensures get permissions returns copy behavior is handled correctly. func TestGetPermissionsReturnsCopy(t *testing.T) { perms := GetPermissions(RolePlayer) require.NotEmpty(t, perms) perms[0] = PermissionManageSystem fresh := GetPermissions(RolePlayer) require.Equal(t, PermissionPlayGame, fresh[0]) } // TestIsValidRole ensures is valid role behavior is handled correctly. func TestIsValidRole(t *testing.T) { require.True(t, IsValidRole("player")) require.False(t, IsValidRole("ghost")) }