1
0
forked from baron/baron-sso

test: add mock outbox expectations for super_admin relations in tenant service tests

This commit is contained in:
2026-04-06 13:11:30 +09:00
parent aaa3dc2fb9
commit 003f12f008

View File

@@ -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)