修复全量审查问题;设置接口PATCH化;回传指纹加固
CI / test (push) Successful in 32s

This commit is contained in:
2026-07-22 16:51:23 +08:00
parent 0614ef22af
commit f51fb6c722
66 changed files with 3997 additions and 687 deletions
+23
View File
@@ -170,3 +170,26 @@ func TestOverviewAggregates(t *testing.T) {
t.Errorf("cost days = %d, want 1", len(out.Cost.Days))
}
}
// TestAggregateCostDaysSplitsCurrencies 锁定多币种聚合:不同币种不相加,
// 顶层字段恒为合计最大的主币种,其余币种进 Series。
func TestAggregateCostDaysSplitsCurrencies(t *testing.T) {
snaps := []model.CostSnapshot{
{OciConfigID: 1, Day: "2026-07-20", Amount: 1.5, Currency: "USD"},
{OciConfigID: 2, Day: "2026-07-20", Amount: 9.0, Currency: "EUR"},
{OciConfigID: 1, Day: "2026-07-21", Amount: 2.5, Currency: "USD"},
{OciConfigID: 3, Day: "2026-07-21", Amount: 3.0, Currency: "USD"},
}
var cost OverviewCost
aggregateCostDays(&cost, snaps)
if cost.CoveredConfigs != 3 || len(cost.Series) != 2 {
t.Fatalf("covered=%d series=%d, want 3, 2", cost.CoveredConfigs, len(cost.Series))
}
if cost.Currency != "EUR" || cost.Total != 9.0 {
t.Errorf("主币种 = %s %.1f, want EUR 9.0(合计最大)", cost.Currency, cost.Total)
}
usd := cost.Series[1]
if usd.Currency != "USD" || usd.Total != 7.0 || len(usd.Days) != 2 || usd.Days[1].Amount != 5.5 {
t.Errorf("USD 序列 = %+v, want 两日合计 7.0 且 21 日 5.5", usd)
}
}