thread-master/apps/backend/internal/module/inspire/usecase/trends_extract_test.go

37 lines
1.1 KiB
Go
Raw Normal View History

2026-07-13 01:15:30 +00:00
package usecase
import (
"strings"
"testing"
"apps/backend/internal/module/search"
"github.com/stretchr/testify/require"
)
func TestExtractTopicLabels_FromGQStyleTitle(t *testing.T) {
// 報導標題 → 應抽出「二砂糖」「炎上展」這類短話題,而不是整段新聞標題
h := search.Hit{
Title: "【一週脆報】本週 Threads 紅什麼:為什麼颱風來襲「二砂糖」比泡麵先被掃空?日本超夯「炎上展」登台",
Snippet: "本週 Threads 完全成了大型苦中作樂現場",
}
labels := extractTopicLabels(h)
require.NotEmpty(t, labels)
joined := strings.Join(labels, " ")
require.Contains(t, joined, "二砂糖")
require.Contains(t, joined, "炎上展")
for _, l := range labels {
require.LessOrEqual(t, len([]rune(l)), 18)
require.NotContains(t, l, "Threads新功能")
}
}
func TestIsMetaThreadsArticle(t *testing.T) {
require.True(t, isMetaThreadsArticle(search.Hit{
Title: "Threads新功能上線AI整理全台「趨勢話題」",
}))
require.False(t, isMetaThreadsArticle(search.Hit{
Title: "本週 Threads 紅什麼:二砂糖與颱風備貨",
}))
}