lib/app/user_test.go

28 lines
826 B
Go
Raw Permalink Normal View History

package app
import "testing"
func TestNativeServicePrincipalScope(t *testing.T) {
principal := &User{
PrincipalType: "service",
PrincipalKey: "cache",
Scopes: []string{"auth:introspect", "crm:account-contact:load"},
}
if !principal.IsServicePrincipal("cache") {
t.Fatal("expected stable service-principal match")
}
if !principal.HasScope("crm:account-contact:load") {
t.Fatal("expected exact scope grant")
}
if principal.HasScope("crm:account:write") {
t.Fatal("unexpected scope grant")
}
}
func TestLegacyUserCannotClaimServiceScope(t *testing.T) {
legacy := &User{APIKey: "legacy", Scopes: []string{"crm:account-contact:load"}}
if legacy.IsServicePrincipal("cache") || legacy.HasScope("crm:account-contact:load") {
t.Fatal("legacy user must not satisfy native service authorization")
}
}