From 003f12f008d7946d6a155180ac964f12ab3f7154 Mon Sep 17 00:00:00 2001 From: chan Date: Mon, 6 Apr 2026 13:11:30 +0900 Subject: [PATCH] test: add mock outbox expectations for super_admin relations in tenant service tests --- backend/internal/service/tenant_service_test.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/backend/internal/service/tenant_service_test.go b/backend/internal/service/tenant_service_test.go index df7a7237..37c68b9b 100644 --- a/backend/internal/service/tenant_service_test.go +++ b/backend/internal/service/tenant_service_test.go @@ -177,6 +177,9 @@ func TestTenantService_RegisterTenant_AutoVerify(t *testing.T) { mockRepo.On("FindBySlug", ctx, slug).Return(nil, nil).Once() mockRepo.On("Create", ctx, mock.Anything).Return(nil) mockRepo.On("AddDomain", ctx, mock.Anything, "example.com", true).Return(nil) + mockOutbox.On("Create", ctx, mock.MatchedBy(func(k *domain.KetoOutbox) bool { + return k.Relation == "admins" && k.Subject == "System:global#super_admins" + })).Return(nil) mockRepo.On("FindBySlug", ctx, slug).Return(&domain.Tenant{ID: "t1", Slug: slug}, nil).Once() tenant, err := svc.RegisterTenant(ctx, name, slug, domain.TenantTypeCompany, "", domains, nil, "") @@ -205,6 +208,10 @@ func TestTenantService_RegisterTenant_WithCreator(t *testing.T) { t.ID = tenantID }).Return(nil) + // Expect global super admin sync + mockOutbox.On("Create", ctx, mock.MatchedBy(func(k *domain.KetoOutbox) bool { + return k.Relation == "admins" && k.Subject == "System:global#super_admins" + })).Return(nil) // Expect owners sync mockOutbox.On("Create", ctx, mock.MatchedBy(func(e *domain.KetoOutbox) bool { return e.Namespace == "Tenant" && e.Object == tenantID && e.Relation == "owners" && e.Subject == "User:"+creatorID @@ -241,6 +248,9 @@ func TestTenantService_RequestRegistration_NoVerify(t *testing.T) { mockRepo.On("Create", ctx, mock.MatchedBy(func(tenant *domain.Tenant) bool { return tenant.Status == domain.TenantStatusPending })).Return(nil) + mockOutbox.On("Create", ctx, mock.MatchedBy(func(k *domain.KetoOutbox) bool { + return k.Relation == "admins" && k.Subject == "System:global#super_admins" + })).Return(nil) mockRepo.On("AddDomain", ctx, mock.Anything, domainName, false).Return(nil) tenant, err := svc.RequestRegistration(ctx, name, slug, "", domainName, adminEmail)