forked from baron/baron-sso
test: add mock outbox expectations for super_admin relations in tenant service tests
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user