thread-master/apps/backend/internal/module/radar/domain/term_test.go

53 lines
1.1 KiB
Go
Raw Normal View History

2026-08-09 07:57:35 +00:00
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)
}
}
}