첫 커밋: 로컬 프로젝트 업로드
This commit is contained in:
76
baron-sso/backend/internal/domain/hanmac_email_test.go
Normal file
76
baron-sso/backend/internal/domain/hanmac_email_test.go
Normal file
@@ -0,0 +1,76 @@
|
||||
package domain
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestSplitEmailDomainAllowsDomainOnlyImportInput(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
email string
|
||||
wantLocal string
|
||||
wantDomain string
|
||||
}{
|
||||
{name: "full address", email: " Han@SamanEng.com ", wantLocal: "han", wantDomain: "samaneng.com"},
|
||||
{name: "domain only", email: "@hanmaceng.co.kr", wantLocal: "", wantDomain: "hanmaceng.co.kr"},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
local, domain, err := SplitEmailDomain(tt.email)
|
||||
if err != nil {
|
||||
t.Fatalf("SplitEmailDomain() error = %v", err)
|
||||
}
|
||||
if local != tt.wantLocal || domain != tt.wantDomain {
|
||||
t.Fatalf("SplitEmailDomain() = (%q, %q), want (%q, %q)", local, domain, tt.wantLocal, tt.wantDomain)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildKoreanNameEmailBase(t *testing.T) {
|
||||
base, needsReview, err := BuildKoreanNameEmailBase("한치영")
|
||||
if err != nil {
|
||||
t.Fatalf("BuildKoreanNameEmailBase() error = %v", err)
|
||||
}
|
||||
if needsReview {
|
||||
t.Fatalf("BuildKoreanNameEmailBase() needsReview = true")
|
||||
}
|
||||
if base != "cyhan" {
|
||||
t.Fatalf("BuildKoreanNameEmailBase() = %q, want %q", base, "cyhan")
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildKoreanNameEmailBaseNeedsReviewForUnknownName(t *testing.T) {
|
||||
base, needsReview, err := BuildKoreanNameEmailBase("A치영")
|
||||
if err != nil {
|
||||
t.Fatalf("BuildKoreanNameEmailBase() error = %v", err)
|
||||
}
|
||||
if base != "" {
|
||||
t.Fatalf("BuildKoreanNameEmailBase() base = %q, want empty", base)
|
||||
}
|
||||
if !needsReview {
|
||||
t.Fatalf("BuildKoreanNameEmailBase() needsReview = false")
|
||||
}
|
||||
}
|
||||
|
||||
func TestMatchesSuggestedNameRule(t *testing.T) {
|
||||
tests := []struct {
|
||||
localPart string
|
||||
base string
|
||||
want bool
|
||||
}{
|
||||
{localPart: "cyhan", base: "cyhan", want: true},
|
||||
{localPart: "cyhan1", base: "cyhan", want: true},
|
||||
{localPart: "cyhan20", base: "cyhan", want: true},
|
||||
{localPart: "hcy", base: "cyhan", want: false},
|
||||
{localPart: "han.cy", base: "cyhan", want: false},
|
||||
{localPart: "cyhan-a", base: "cyhan", want: false},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.localPart, func(t *testing.T) {
|
||||
if got := MatchesSuggestedNameRule(tt.localPart, tt.base); got != tt.want {
|
||||
t.Fatalf("MatchesSuggestedNameRule(%q, %q) = %v, want %v", tt.localPart, tt.base, got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user