forked from baron/baron-sso
77 lines
2.2 KiB
Go
77 lines
2.2 KiB
Go
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)
|
|
}
|
|
})
|
|
}
|
|
}
|