53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|