Files
digital-psychology/apps/api/internal/nickname/generate_test.go
T
jackyu66gitandCursor 13860bf1ef
ci / h5 (push) Canceled after 0s
ci / api (push) Canceled after 0s
ci / ess-docs (push) Canceled after 0s
feat(ECR-011): 昵称、首页贴士与档案 Self 唯一/合盘交叉校验
每账号仅一条 self(migration 40902);合盘只选 TA;账号昵称可改;首页穿衣/颜色/养生贴士。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-12 22:05:00 +08:00

56 lines
1.0 KiB
Go

package nickname
import (
"strings"
"testing"
"unicode/utf8"
)
func TestWordBankSize(t *testing.T) {
if len(imageryWords) != 100 {
t.Fatalf("imagery want 100 got %d", len(imageryWords))
}
if len(sceneWords) != 100 {
t.Fatalf("scene want 100 got %d", len(sceneWords))
}
}
func TestRandomFormat(t *testing.T) {
seen := map[string]bool{}
for i := 0; i < 50; i++ {
n := Random()
if utf8.RuneCountInString(n) < 2 {
t.Fatalf("too short: %q", n)
}
seen[n] = true
ok := false
for _, im := range imageryWords {
for _, sc := range sceneWords {
if n == im+sc {
ok = true
break
}
}
if ok {
break
}
}
if !ok {
t.Fatalf("not from bank: %q", n)
}
}
if len(seen) < 5 {
t.Fatalf("expected some variety, got %d unique", len(seen))
}
}
func TestNormalize(t *testing.T) {
if got := Normalize(" 心语岛 "); got != "心语岛" {
t.Fatalf("got %q", got)
}
long := strings.Repeat("啊", 20)
if utf8.RuneCountInString(Normalize(long)) != 16 {
t.Fatalf("clamp failed")
}
}