feat(report): add official release event source
This commit is contained in:
@@ -405,6 +405,20 @@ func TestGenerateHTMLV3IncludesTencentSubscriptionSection(t *testing.T) {
|
||||
func TestBuildHeadlineItemsUsesModelEvents(t *testing.T) {
|
||||
report := sampleReportForV1()
|
||||
report.ModelEvents = []ModelEvent{
|
||||
{
|
||||
EventType: "official_release",
|
||||
ModelName: "GLM-5",
|
||||
ProviderName: "Zhipu",
|
||||
OperatorName: "Zhipu",
|
||||
TrustLabel: "官方来源",
|
||||
Baseline: "官方首次发布",
|
||||
Summary: "官方发布新模型,值得优先复查中文通用与推理场景默认选择。",
|
||||
SourceKindLabel: "官方发布",
|
||||
PrimarySource: "https://open.bigmodel.cn/dev/howuse/model",
|
||||
UpdatedAt: "2026-05-13 08:30",
|
||||
EvidenceDetail: "models.release_date = 今日,且 source_url 指向官方文档",
|
||||
Priority: 120,
|
||||
},
|
||||
{
|
||||
EventType: "price_cut",
|
||||
ModelName: "glm-5",
|
||||
@@ -441,14 +455,14 @@ func TestBuildHeadlineItemsUsesModelEvents(t *testing.T) {
|
||||
if len(items) < 2 {
|
||||
t.Fatalf("expected at least 2 headline items, got %d", len(items))
|
||||
}
|
||||
if !strings.Contains(items[0].Title, "glm-5") {
|
||||
t.Fatalf("expected price_cut event to rank first, got %+v", items[0])
|
||||
if !strings.Contains(items[0].Title, "GLM-5") || items[0].Label != "官方发布" {
|
||||
t.Fatalf("expected official release event to rank first, got %+v", items[0])
|
||||
}
|
||||
if items[0].Baseline != "较昨日 -25%" {
|
||||
t.Fatalf("expected event baseline to be preserved, got %+v", items[0])
|
||||
if items[1].Baseline != "较昨日 -25%" {
|
||||
t.Fatalf("expected price_cut baseline to be preserved, got %+v", items[1])
|
||||
}
|
||||
if items[0].SourceKindLabel != "价格快照" || items[0].PrimarySource != "pricing_history" {
|
||||
t.Fatalf("expected event evidence fields to be preserved, got %+v", items[0])
|
||||
if items[0].SourceKindLabel != "官方发布" || items[0].PrimarySource != "https://open.bigmodel.cn/dev/howuse/model" {
|
||||
t.Fatalf("expected official release evidence fields to be preserved, got %+v", items[0])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -534,3 +548,30 @@ func TestHeadlineItemFromModelEventIncludesEvidenceFields(t *testing.T) {
|
||||
t.Fatalf("expected evidence detail to be populated, got %+v", item)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHeadlineItemFromOfficialReleaseEvent(t *testing.T) {
|
||||
item := headlineItemFromModelEvent(ModelEvent{
|
||||
EventType: "official_release",
|
||||
ModelName: "Claude Sonnet 4.5",
|
||||
TrustLabel: "官方来源",
|
||||
Baseline: "官方首次发布",
|
||||
Summary: "官方发布新模型。",
|
||||
SourceKindLabel: "官方发布",
|
||||
PrimarySource: "https://docs.anthropic.com/en/release-notes/api",
|
||||
UpdatedAt: "2026-05-13 07:00",
|
||||
EvidenceDetail: "models.release_date = 今日,且 source_url 指向官方发布页",
|
||||
})
|
||||
|
||||
if item.Label != "官方发布" {
|
||||
t.Fatalf("expected label to be 官方发布, got %+v", item)
|
||||
}
|
||||
if !strings.Contains(item.Title, "官方发布") {
|
||||
t.Fatalf("expected title to mention 官方发布, got %+v", item)
|
||||
}
|
||||
if item.SourceKindLabel != "官方发布" {
|
||||
t.Fatalf("expected source kind label to be 官方发布, got %+v", item)
|
||||
}
|
||||
if item.PrimarySource != "https://docs.anthropic.com/en/release-notes/api" {
|
||||
t.Fatalf("expected primary source to be preserved, got %+v", item)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user