43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
|
|
package tenantengine_test
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/netkingdom/flex-auth/internal/adapters/tenantengine"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestAttachToContextSetsRolesAndAvailability(t *testing.T) {
|
||
|
|
ctx := tenantengine.AttachToContext(nil, tenantengine.LiveRolesResult{
|
||
|
|
Roles: []string{"CUS"},
|
||
|
|
Available: true,
|
||
|
|
})
|
||
|
|
|
||
|
|
if ctx["tenant_roles_available"] != true {
|
||
|
|
t.Fatalf("tenant_roles_available = %v, want true", ctx["tenant_roles_available"])
|
||
|
|
}
|
||
|
|
roles, ok := ctx["tenant_roles"].([]string)
|
||
|
|
if !ok || len(roles) != 1 || roles[0] != "CUS" {
|
||
|
|
t.Fatalf("tenant_roles = %v", ctx["tenant_roles"])
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestAttachToContextMarksUnavailableOnFailure(t *testing.T) {
|
||
|
|
ctx := tenantengine.AttachToContext(map[string]any{"existing": "field"}, tenantengine.LiveRolesResult{
|
||
|
|
Available: false,
|
||
|
|
})
|
||
|
|
|
||
|
|
if ctx["tenant_roles_available"] != false {
|
||
|
|
t.Fatalf("tenant_roles_available = %v, want false", ctx["tenant_roles_available"])
|
||
|
|
}
|
||
|
|
if ctx["existing"] != "field" {
|
||
|
|
t.Fatal("AttachToContext must not clobber unrelated context fields")
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestAttachToContextHandlesNilContext(t *testing.T) {
|
||
|
|
ctx := tenantengine.AttachToContext(nil, tenantengine.LiveRolesResult{Available: true, Roles: []string{}})
|
||
|
|
if ctx == nil {
|
||
|
|
t.Fatal("expected a non-nil map")
|
||
|
|
}
|
||
|
|
}
|