From 19c67a0d91bfda0c92326e60b73fb63b0307fb8f Mon Sep 17 00:00:00 2001 From: chan Date: Thu, 19 Feb 2026 17:00:39 +0900 Subject: [PATCH] =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=802?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/auth_handler_signup_test.go | 20 +++++++++++++------ .../internal/service/tenant_service_test.go | 15 ++++++++++++++ backend/internal/utils/slug_test.go | 2 +- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/backend/internal/handler/auth_handler_signup_test.go b/backend/internal/handler/auth_handler_signup_test.go index ed86dd1b..da6a0fcf 100644 --- a/backend/internal/handler/auth_handler_signup_test.go +++ b/backend/internal/handler/auth_handler_signup_test.go @@ -24,17 +24,19 @@ type MockRedisForSignup struct { func (m *MockRedisForSignup) Set(key string, value string, ttl time.Duration) error { return m.Called(key, value, ttl).Error(0) } + func (m *MockRedisForSignup) Get(key string) (string, error) { args := m.Called(key) return args.String(0), args.Error(1) } + func (m *MockRedisForSignup) Delete(key string) error { return m.Called(key).Error(0) } -func (m *MockRedisForSignup) StoreVerificationCode(phone, code string) error { return nil } +func (m *MockRedisForSignup) StoreVerificationCode(phone, code string) error { return nil } func (m *MockRedisForSignup) GetVerificationCode(phone string) (string, error) { return "", nil } -func (m *MockRedisForSignup) DeleteVerificationCode(phone string) error { return nil } -func (m *MockRedisForSignup) Ping(ctx context.Context) error { return nil } +func (m *MockRedisForSignup) DeleteVerificationCode(phone string) error { return nil } +func (m *MockRedisForSignup) Ping(ctx context.Context) error { return nil } type MockIdpForSignup struct { mock.Mock @@ -44,19 +46,24 @@ func (m *MockIdpForSignup) Name() string { return "mock-idp" } func (m *MockIdpForSignup) GetMetadata() (*domain.IDPMetadata, error) { return &domain.IDPMetadata{SupportedFields: []string{"email", "name", "phoneNumber", "grade", "department"}}, nil } + func (m *MockIdpForSignup) CreateUser(user *domain.BrokerUser, password string) (string, error) { args := m.Called(user, password) return args.String(0), args.Error(1) } -func (m *MockIdpForSignup) SignIn(loginID, password string) (*domain.AuthInfo, error) { return nil, nil } -func (m *MockIdpForSignup) UserExists(loginID string) (bool, error) { return false, nil } -func (m *MockIdpForSignup) IssueSession(loginID string) (*domain.AuthInfo, error) { return nil, nil } +func (m *MockIdpForSignup) SignIn(loginID, password string) (*domain.AuthInfo, error) { + return nil, nil +} +func (m *MockIdpForSignup) UserExists(loginID string) (bool, error) { return false, nil } +func (m *MockIdpForSignup) IssueSession(loginID string) (*domain.AuthInfo, error) { return nil, nil } func (m *MockIdpForSignup) InitiateLinkLogin(loginID, returnTo string) (*domain.LinkLoginInit, error) { return nil, nil } + func (m *MockIdpForSignup) VerifyLoginCode(loginID, flowID, code string) (*domain.AuthInfo, error) { return nil, nil } + func (m *MockIdpForSignup) GetPasswordPolicy() (*domain.PasswordPolicy, error) { return &domain.PasswordPolicy{MinLength: 12}, nil } @@ -64,6 +71,7 @@ func (m *MockIdpForSignup) InitiatePasswordReset(loginID, redirectUrl string) er func (m *MockIdpForSignup) VerifyPasswordResetToken(token string) (*domain.AuthInfo, error) { return nil, nil } + func (m *MockIdpForSignup) UpdateUserPassword(loginID, newPassword string, r *http.Request) error { return nil } diff --git a/backend/internal/service/tenant_service_test.go b/backend/internal/service/tenant_service_test.go index 0c1fa4d4..a83fa3cb 100644 --- a/backend/internal/service/tenant_service_test.go +++ b/backend/internal/service/tenant_service_test.go @@ -18,9 +18,11 @@ type MockTenantRepoForSvc struct { func (m *MockTenantRepoForSvc) Create(ctx context.Context, tenant *domain.Tenant) error { return m.Called(ctx, tenant).Error(0) } + func (m *MockTenantRepoForSvc) Update(ctx context.Context, tenant *domain.Tenant) error { return m.Called(ctx, tenant).Error(0) } + func (m *MockTenantRepoForSvc) FindByID(ctx context.Context, id string) (*domain.Tenant, error) { args := m.Called(ctx, id) if args.Get(0) == nil { @@ -28,6 +30,7 @@ func (m *MockTenantRepoForSvc) FindByID(ctx context.Context, id string) (*domain } return args.Get(0).(*domain.Tenant), args.Error(1) } + func (m *MockTenantRepoForSvc) FindBySlug(ctx context.Context, slug string) (*domain.Tenant, error) { args := m.Called(ctx, slug) if args.Get(0) == nil { @@ -35,9 +38,11 @@ func (m *MockTenantRepoForSvc) FindBySlug(ctx context.Context, slug string) (*do } return args.Get(0).(*domain.Tenant), args.Error(1) } + func (m *MockTenantRepoForSvc) FindByName(ctx context.Context, name string) (*domain.Tenant, error) { return nil, nil } + func (m *MockTenantRepoForSvc) FindByDomain(ctx context.Context, domainName string) (*domain.Tenant, error) { args := m.Called(ctx, domainName) if args.Get(0) == nil { @@ -45,9 +50,11 @@ func (m *MockTenantRepoForSvc) FindByDomain(ctx context.Context, domainName stri } return args.Get(0).(*domain.Tenant), args.Error(1) } + func (m *MockTenantRepoForSvc) FindByIDs(ctx context.Context, ids []string) ([]domain.Tenant, error) { return nil, nil } + func (m *MockTenantRepoForSvc) AddDomain(ctx context.Context, tenantID string, domainName string, verified bool) error { return m.Called(ctx, tenantID, domainName, verified).Error(0) } @@ -59,17 +66,21 @@ type MockKetoSvcForTenant struct { func (m *MockKetoSvcForTenant) CreateRelation(ctx context.Context, namespace, object, relation, subject string) error { return m.Called(ctx, namespace, object, relation, subject).Error(0) } + func (m *MockKetoSvcForTenant) DeleteRelation(ctx context.Context, namespace, object, relation, subject string) error { return m.Called(ctx, namespace, object, relation, subject).Error(0) } + func (m *MockKetoSvcForTenant) ListRelations(ctx context.Context, namespace, object, relation, subject string) ([]RelationTuple, error) { args := m.Called(ctx, namespace, object, relation, subject) return args.Get(0).([]RelationTuple), args.Error(1) } + func (m *MockKetoSvcForTenant) ListObjects(ctx context.Context, namespace, relation, subject string) ([]string, error) { args := m.Called(ctx, namespace, relation, subject) return args.Get(0).([]string), args.Error(1) } + func (m *MockKetoSvcForTenant) CheckPermission(ctx context.Context, namespace, object, relation, subject string) (bool, error) { args := m.Called(ctx, namespace, object, relation, subject) return args.Bool(0), args.Error(1) @@ -88,15 +99,19 @@ func (m *MockUserRepoForTenant) FindByEmail(ctx context.Context, email string) ( } return args.Get(0).(*domain.User), args.Error(1) } + func (m *MockUserRepoForTenant) FindByID(ctx context.Context, id string) (*domain.User, error) { return nil, nil } + func (m *MockUserRepoForTenant) FindByIDs(ctx context.Context, ids []string) ([]domain.User, error) { return nil, nil } + func (m *MockUserRepoForTenant) ListByTenant(ctx context.Context, tenantID string) ([]domain.User, error) { return nil, nil } + func (m *MockUserRepoForTenant) List(ctx context.Context, offset, limit int, search string) ([]domain.User, int64, error) { return nil, 0, nil } diff --git a/backend/internal/utils/slug_test.go b/backend/internal/utils/slug_test.go index 9a08ac40..15dad8ef 100644 --- a/backend/internal/utils/slug_test.go +++ b/backend/internal/utils/slug_test.go @@ -39,7 +39,7 @@ func TestValidateSlug_Format(t *testing.T) { {"abc", true}, {"a-b-c", true}, {"123", true}, - {"ab", false}, // Too short + {"ab", false}, // Too short {"-abc", false}, // Starts with hyphen {"abc-", false}, // Ends with hyphen {"Abc", true}, // Case insensitive check (converted to lower)