5759c1862e
M0-M7 已完成:核心网关(身份/RBAC/TOTP/OIDC/SAML/Provider/配额/路由/内容策略/审计/定价)+ 资源市场(MCP/Skills/数字员工)。 含 22 个 PostgreSQL 迁移、管理端/门户端前端源码、OpenAPI 契约、部署 compose。 Co-Authored-By: Claude <noreply@anthropic.com>
30 lines
1.1 KiB
Go
30 lines
1.1 KiB
Go
package identity
|
|
|
|
import "testing"
|
|
|
|
func TestRoleAndDirectPermissionsAreMerged(t *testing.T) {
|
|
account := Account{Role: "auditor", Permissions: []string{PermissionProviderManage}}
|
|
if !HasPermission(account, PermissionProviderRead) || !HasPermission(account, PermissionProviderManage) {
|
|
t.Fatal("expected role and direct permissions to be merged")
|
|
}
|
|
if HasPermission(account, PermissionIdentityManage) {
|
|
t.Fatal("unexpected identity management permission")
|
|
}
|
|
}
|
|
|
|
func TestSuperadminWildcard(t *testing.T) {
|
|
if !HasPermission(Account{Role: "superadmin"}, "future_resource:future_action") {
|
|
t.Fatal("superadmin wildcard must cover future permissions")
|
|
}
|
|
}
|
|
|
|
func TestNormalizePermissions(t *testing.T) {
|
|
permissions, err := normalizePermissions([]string{"provider:read", " provider:read ", "future.feature:execute"})
|
|
if err != nil || len(permissions) != 2 {
|
|
t.Fatalf("unexpected normalized permissions: %#v, %v", permissions, err)
|
|
}
|
|
if _, err := normalizePermissions([]string{"INVALID PERMISSION"}); err == nil {
|
|
t.Fatal("expected invalid permission to be rejected")
|
|
}
|
|
}
|