41 lines
1.4 KiB
Go
41 lines
1.4 KiB
Go
package host
|
|
|
|
import "testing"
|
|
|
|
func TestResolveRoleScopePolicyKeepsAppDifferencesInRegistry(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
appCode string
|
|
baseScope RoleScope
|
|
configurable bool
|
|
expanded RoleScope
|
|
}{
|
|
{name: "default app", appCode: "lalu", baseScope: RoleScopeCountry, configurable: true, expanded: RoleScopeRegion},
|
|
{name: "normalized huwaa", appCode: " HUWAa ", baseScope: RoleScopeGlobal, configurable: false, expanded: RoleScopeGlobal},
|
|
}
|
|
for _, testCase := range tests {
|
|
t.Run(testCase.name, func(t *testing.T) {
|
|
policy, err := ResolveRoleScopePolicy(testCase.appCode, RoleScopeSceneManagerOperations)
|
|
if err != nil {
|
|
t.Fatalf("resolve policy: %v", err)
|
|
}
|
|
if policy.BaseScope != testCase.baseScope || policy.RegionExpansionConfigurable != testCase.configurable {
|
|
t.Fatalf("policy mismatch: %+v", policy)
|
|
}
|
|
if got := policy.EffectiveScope(true); got != testCase.expanded {
|
|
t.Fatalf("expanded scope = %q, want %q", got, testCase.expanded)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestResolveRoleScopePolicyKeepsLegacyManagerSceneCompatible(t *testing.T) {
|
|
policy, err := ResolveRoleScopePolicy("lalu", RoleScopeSceneManagerAddBDLeader)
|
|
if err != nil {
|
|
t.Fatalf("resolve legacy manager scene: %v", err)
|
|
}
|
|
if policy.Scene != RoleScopeSceneManagerOperations || policy.ExpandedScope != RoleScopeRegion {
|
|
t.Fatalf("legacy scene must resolve to general manager policy: %+v", policy)
|
|
}
|
|
}
|