feat(intraday): monitor DeepSeek official page drift
This commit is contained in:
@@ -92,3 +92,108 @@ func TestMergeVerifiedDiscoveryEventsDropsUnverifiedPriceNarrative(t *testing.T)
|
||||
t.Fatalf("非正式 discovery 事件不应进入正式快照: %+v", merged)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildDeepSeekNewsDriftEvent(t *testing.T) {
|
||||
row := officialImportSignatureAuditViewRow{
|
||||
SourceKey: "deepseek_news_signature",
|
||||
Status: "drift_detected",
|
||||
StructureState: "changed",
|
||||
StructureChanged: true,
|
||||
DriftDetected: true,
|
||||
BaselineInitialized: false,
|
||||
StructureSHA256: "abc123",
|
||||
}
|
||||
event, ok := buildDeepSeekSignatureSignalEvent(row, deepseekSignatureEventConfig{
|
||||
SourceKey: "deepseek_news_signature",
|
||||
ModelName: "DeepSeek 官方新闻页",
|
||||
SourceKindLabel: "官方新闻页结构变化",
|
||||
PrimaryURL: defaultDeepSeekNewsSignalURL,
|
||||
Audience: "a",
|
||||
EvidenceTemplate: "news drift %s %s",
|
||||
Baseline: "官方新闻页结构漂移",
|
||||
Summary: "summary",
|
||||
Priority: 117,
|
||||
})
|
||||
if !ok {
|
||||
t.Fatal("期望为 drift 行生成正式信号事件")
|
||||
}
|
||||
if event.EventType != "official_release" {
|
||||
t.Fatalf("DeepSeek drift 应映射为 official_release, got=%q", event.EventType)
|
||||
}
|
||||
if event.ProviderName != "DeepSeek" || event.ModelName != "DeepSeek 官方新闻页" {
|
||||
t.Fatalf("DeepSeek drift 事件主体错误: %+v", event)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildDeepSeekPricingDriftEvent(t *testing.T) {
|
||||
row := officialImportSignatureAuditViewRow{
|
||||
SourceKey: "deepseek_pricing_signature",
|
||||
Status: "drift_detected",
|
||||
StructureState: "changed",
|
||||
StructureChanged: true,
|
||||
DriftDetected: true,
|
||||
BaselineInitialized: false,
|
||||
StructureSHA256: "pricing123",
|
||||
}
|
||||
event, ok := buildDeepSeekSignatureSignalEvent(row, deepseekSignatureEventConfig{
|
||||
SourceKey: "deepseek_pricing_signature",
|
||||
ModelName: "DeepSeek 官方价格页",
|
||||
SourceKindLabel: "官方价格页结构变化",
|
||||
PrimaryURL: defaultDeepSeekPricingSignalURL,
|
||||
Audience: "a",
|
||||
EvidenceTemplate: "pricing drift %s %s",
|
||||
Baseline: "官方价格页结构漂移",
|
||||
Summary: "pricing summary",
|
||||
Priority: 116,
|
||||
})
|
||||
if !ok {
|
||||
t.Fatal("期望为 pricing drift 行生成正式信号事件")
|
||||
}
|
||||
if event.ModelName != "DeepSeek 官方价格页" || event.SourceKindLabel != "官方价格页结构变化" {
|
||||
t.Fatalf("pricing drift 事件映射错误: %+v", event)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildDeepSeekAPIPricingDriftEvent(t *testing.T) {
|
||||
row := officialImportSignatureAuditViewRow{
|
||||
SourceKey: "deepseek_api_pricing_signature",
|
||||
Status: "drift_detected",
|
||||
StructureState: "changed",
|
||||
StructureChanged: true,
|
||||
DriftDetected: true,
|
||||
BaselineInitialized: false,
|
||||
StructureSHA256: "api123",
|
||||
}
|
||||
event, ok := buildDeepSeekSignatureSignalEvent(row, deepseekSignatureEventConfig{
|
||||
SourceKey: "deepseek_api_pricing_signature",
|
||||
ModelName: "DeepSeek API 定价页",
|
||||
SourceKindLabel: "官方 API 定价页结构变化",
|
||||
PrimaryURL: defaultDeepSeekAPIPricingSignalURL,
|
||||
Audience: "a",
|
||||
EvidenceTemplate: "api drift %s %s",
|
||||
Baseline: "官方 API 定价页结构漂移",
|
||||
Summary: "api pricing summary",
|
||||
Priority: 115,
|
||||
})
|
||||
if !ok {
|
||||
t.Fatal("期望为 api pricing drift 行生成正式信号事件")
|
||||
}
|
||||
if event.ModelName != "DeepSeek API 定价页" || event.SourceKindLabel != "官方 API 定价页结构变化" {
|
||||
t.Fatalf("api pricing drift 事件映射错误: %+v", event)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildDeepSeekNewsDriftEventSkipsBaselineOnly(t *testing.T) {
|
||||
row := officialImportSignatureAuditViewRow{
|
||||
SourceKey: "deepseek_news_signature",
|
||||
Status: "baseline_initialized",
|
||||
StructureState: "initial",
|
||||
StructureChanged: false,
|
||||
DriftDetected: false,
|
||||
BaselineInitialized: true,
|
||||
StructureSHA256: "abc123",
|
||||
}
|
||||
if _, ok := buildDeepSeekSignatureSignalEvent(row, deepseekSignatureEventConfig{SourceKey: "deepseek_news_signature"}); ok {
|
||||
t.Fatal("baseline 初始化不应直接进入正式信号")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user