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") } }