package main import ( "strings" "testing" ) func TestPrintBackhaulReport(t *testing.T) { var b strings.Builder printBackhaulReport(&b, backhaulReport{ Period: "mtd", CoveredDays: 3, PeriodDays: 10, EgressGB: 14, BackhaulGB: 5, BackhaulReq1k: 7, ShareOfEgress: 5.0 / 14, InterRegionGBUSD: 0.02, AbsorbedUSD: 0.10, Accounts: []backhaulAccount{ {Account: "bab", Name: "ops", EgressGB: 10, BackhaulGB: 2.5, BackhaulReq1k: 7, ShareOfEgress: 0.25, AbsorbedUSD: 0.225}, }, }) out := b.String() for _, want := range []string{"backhaul mtd (3/10 days covered): 5.00 GB of 14.00 GB egress (35.7%)", "inter-region leg ≈ $0.10 at $0.020/GB, absorbed", "bab", "ops", "25.0%"} { if !strings.Contains(out, want) { t.Errorf("missing %q in:\n%s", want, out) } } var empty strings.Builder printBackhaulReport(&empty, backhaulReport{Period: "7d", PeriodDays: 7}) if !strings.Contains(empty.String(), "no account backhauled anything") { t.Errorf("empty report printed a bare header:\n%s", empty.String()) } }