package domain import "testing" func TestNormalizeSearchTerm(t *testing.T) { cases := []struct { in, want string }{ {" 保母 求推薦 ", "保母 求推薦"}, {"到府 保母", "到府 保母"}, {"\t ", ""}, } for _, c := range cases { if got := NormalizeSearchTerm(c.in); got != c.want { t.Errorf("NormalizeSearchTerm(%q) = %q, want %q", c.in, got, c.want) } } } func TestIsThreadsSearchable(t *testing.T) { ok := []string{ "保母 求推薦", "到府保母", "求推薦", "有人知道", "wedding photo", "台北 保母", } for _, s := range ok { if !IsThreadsSearchable(s) { t.Errorf("IsThreadsSearchable(%q) = false, want true", s) } } bad := []string{ "", "a", "台北 婚攝 推薦", // 3 tokens "這是一個超長關鍵字超過十二字", // too long "保母 AND 求推薦", "保母#推薦", "保母!", "🎉 保母", "\"保母\"", " ", "一", // 1 CJK rune } for _, s := range bad { if IsThreadsSearchable(s) { t.Errorf("IsThreadsSearchable(%q) = true, want false", s) } } }