forked from baron/baron-sso
userfront&backend test coverage 추가
This commit is contained in:
@@ -2,13 +2,15 @@ package validator
|
||||
|
||||
import (
|
||||
"baron-sso-backend/internal/domain"
|
||||
"errors"
|
||||
"net/http"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// MockProvider는 IdentityProvider 인터페이스를 구현하는 테스트용 구조체입니다.
|
||||
type MockProvider struct {
|
||||
Supported []string
|
||||
Supported []string
|
||||
MetadataErr error
|
||||
}
|
||||
|
||||
func (m *MockProvider) Name() string {
|
||||
@@ -16,6 +18,9 @@ func (m *MockProvider) Name() string {
|
||||
}
|
||||
|
||||
func (m *MockProvider) GetMetadata() (*domain.IDPMetadata, error) {
|
||||
if m.MetadataErr != nil {
|
||||
return nil, m.MetadataErr
|
||||
}
|
||||
return &domain.IDPMetadata{
|
||||
SupportedFields: m.Supported,
|
||||
}, nil
|
||||
@@ -118,3 +123,23 @@ func TestValidateIDPCompatibility(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateIDPCompatibilityMetadataError(t *testing.T) {
|
||||
mockIDP := &MockProvider{MetadataErr: errors.New("metadata unavailable")}
|
||||
|
||||
err := ValidateIDPCompatibility(domain.BrokerUser{}, mockIDP)
|
||||
if err == nil {
|
||||
t.Fatalf("expected metadata error")
|
||||
}
|
||||
if got := err.Error(); got != "failed to fetch metadata from IDP MockIDP: metadata unavailable" {
|
||||
t.Fatalf("unexpected error: %s", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateIDPCompatibilityPointerModel(t *testing.T) {
|
||||
mockIDP := &MockProvider{Supported: []string{"id", "email", "grade", "department"}}
|
||||
|
||||
if err := ValidateIDPCompatibility(&domain.BrokerUser{}, mockIDP); err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user