86 lines
2.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package user
import "testing"
func TestValidDisplayUserIDAllowsFiveDigitSeedAccounts(t *testing.T) {
t.Parallel()
valid := []string{"10001", "99999", "123456", "12345678901"}
for _, value := range valid {
if !ValidDisplayUserID(value) {
t.Fatalf("display_user_id %s should be valid", value)
}
}
invalid := []string{"", "09999", "9999", "123456789012", "12a45"}
for _, value := range invalid {
if ValidDisplayUserID(value) {
t.Fatalf("display_user_id %s should be invalid", value)
}
}
}
func TestValidResolvableDisplayUserIDAllowsDefaultAndPrettyIDs(t *testing.T) {
t.Parallel()
valid := []string{"10001", "123456", "1111cc1111", "VIP2026", "ملك123", "Cafe\u0301123", "𝕸⃝é中⚡️™"}
for _, value := range valid {
if !ValidResolvableDisplayUserID(value) {
t.Fatalf("resolvable display_user_id %q should be valid", value)
}
}
invalid := []string{"", " ", " VIP", "VIP ", "\nVIP", "VIP\x00"}
for _, value := range invalid {
if ValidResolvableDisplayUserID(value) {
t.Fatalf("resolvable display_user_id %q should be invalid", value)
}
}
}
func TestValidAdminPrettyDisplayUserID(t *testing.T) {
t.Parallel()
// Unicode 字体可能含数学字母、组合标记、符号及 emoji后台靓号必须完整保留这些展示字符。
valid := []string{"VIP2026", "ملك123", "Cafe\u0301123", "𝕸⃝é中⚡️™", "VIP-2026", "VIP 2026", "VIP😀", "VIP!"}
for _, value := range valid {
if !ValidAdminPrettyDisplayUserID(value) {
t.Fatalf("admin pretty display_user_id %q should be valid", value)
}
}
invalid := []string{"", " ", " VIP", "VIP ", "\nVIP", "VIP\x00"}
for _, value := range invalid {
if ValidAdminPrettyDisplayUserID(value) {
t.Fatalf("admin pretty display_user_id %q should be invalid", value)
}
}
}
func TestValidPrettyDisplayIDRuleType(t *testing.T) {
t.Parallel()
valid := []string{
PrettyDisplayIDRuleAABBCC,
PrettyDisplayIDRuleAAAA,
PrettyDisplayIDRuleABAB,
PrettyDisplayIDRuleABCDEF,
PrettyDisplayIDRuleFEDCBA,
PrettyDisplayIDRuleDateYYYYMMDD,
PrettyDisplayIDRuleLove,
PrettyDisplayIDRuleCustomValues,
PrettyDisplayIDRuleCustomPattern,
}
for _, ruleType := range valid {
if !ValidPrettyDisplayIDRuleType(ruleType) {
t.Fatalf("rule_type %s should be valid", ruleType)
}
}
for _, ruleType := range []string{"", "random", "aabbccddxx"} {
if ValidPrettyDisplayIDRuleType(ruleType) {
t.Fatalf("rule_type %s should be invalid", ruleType)
}
}
}