forked from baron/baron-sso
fix: resolve i18n synchronization and fix backend tests
- Added missing i18n keys for integrity and tenant profile pages to root and adminfront locales. - Corrected i18n section structure in template.toml. - Fixed Hanmac email policy test by improving tenant hierarchy mocking and ensuring correct CompanyCode propagation. - Resolved various backend test failures by updating expectations for normalized roles and fixing undefined variables.
This commit is contained in:
@@ -124,7 +124,7 @@ func TestDevHandler_Isolation(t *testing.T) {
|
||||
mockKeto.On("CheckPermission", mock.Anything, "User:user-a", "RelyingParty", "client-tenant-a", "view").Return(true, nil).Maybe()
|
||||
// Deny for other clients
|
||||
mockKeto.On("CheckPermission", mock.Anything, "User:user-a", "RelyingParty", "client-tenant-b", "view").Return(false, nil).Maybe()
|
||||
|
||||
|
||||
mockKeto.On("ListRelations", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return([]service.RelationTuple{}, nil).Maybe()
|
||||
|
||||
req := httptest.NewRequest(http.MethodGet, "/api/v1/dev/clients", nil)
|
||||
@@ -155,7 +155,7 @@ func TestDevHandler_Isolation(t *testing.T) {
|
||||
return c.Next()
|
||||
})
|
||||
app.Get("/api/v1/dev/clients", h.ListClients)
|
||||
|
||||
|
||||
// Deny all by default
|
||||
mockKeto.On("CheckPermission", mock.Anything, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(false, nil).Maybe()
|
||||
|
||||
|
||||
@@ -1020,6 +1020,7 @@ func (h *UserHandler) BulkCreateUsers(c *fiber.Ctx) error {
|
||||
ID string
|
||||
Slug string
|
||||
Name string
|
||||
ParentID *string
|
||||
Schema []any
|
||||
Groups []domain.UserGroup
|
||||
LoginIDField string
|
||||
@@ -1030,9 +1031,10 @@ func (h *UserHandler) BulkCreateUsers(c *fiber.Ctx) error {
|
||||
|
||||
buildTenantCacheItem := func(tenant *domain.Tenant) tenantCacheItem {
|
||||
tItem := tenantCacheItem{
|
||||
ID: tenant.ID,
|
||||
Slug: tenant.Slug,
|
||||
Name: tenant.Name,
|
||||
ID: tenant.ID,
|
||||
Slug: tenant.Slug,
|
||||
Name: tenant.Name,
|
||||
ParentID: tenant.ParentID,
|
||||
}
|
||||
if s, ok := tenant.Config["userSchema"].([]any); ok {
|
||||
tItem.Schema = s
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"slices"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -1105,11 +1106,17 @@ func TestUserHandler_BulkCreateUsers_HanmacEmailPolicy(t *testing.T) {
|
||||
mockTenant.On("GetTenantBySlug", mock.Anything, "h-company").Return(&hTenants[1], nil).Maybe()
|
||||
mockTenant.On("GetTenant", mock.Anything, hCompanyID).Return(&hTenants[1], nil).Maybe()
|
||||
mockTenant.On("ListTenants", mock.Anything, 10000, 0, "").Return(hTenants, int64(len(hTenants)), nil).Maybe()
|
||||
|
||||
mockRepo.On("FindByTenantIDs", mock.Anything, mock.Anything).Return([]domain.User{
|
||||
{Email: "han@hanmaceng.co.kr", TenantID: &hCompanyID},
|
||||
|
||||
mockRepo.On("FindByTenantIDs", mock.Anything, mock.MatchedBy(func(ids []string) bool {
|
||||
return slices.Contains(ids, hRootID) || slices.Contains(ids, hCompanyID)
|
||||
})).Return([]domain.User{
|
||||
{Email: "han@hanmaceng.co.kr", TenantID: &hCompanyID, CompanyCode: "h-company"},
|
||||
}, nil).Maybe()
|
||||
mockRepo.On("FindByCompanyCodes", mock.Anything, mock.MatchedBy(func(codes []string) bool {
|
||||
return slices.Contains(codes, "h-company") || slices.Contains(codes, "hanmac-family")
|
||||
})).Return([]domain.User{
|
||||
{Email: "han@hanmaceng.co.kr", TenantID: &hCompanyID, CompanyCode: "h-company"},
|
||||
}, nil).Maybe()
|
||||
mockRepo.On("FindByCompanyCodes", mock.Anything, mock.Anything).Return([]domain.User{}, nil).Maybe()
|
||||
mockOry.On("GetPasswordPolicy").Return(&domain.PasswordPolicy{MinLength: 8}, nil).Maybe()
|
||||
|
||||
payload := map[string]any{
|
||||
|
||||
Reference in New Issue
Block a user