From ed6f15d49ee8d89d109548e2c953405bb5010705 Mon Sep 17 00:00:00 2001 From: rcourtman Date: Thu, 5 Feb 2026 11:41:30 +0000 Subject: [PATCH] Cover multi-report defaults and metric filtering --- pkg/reporting/engine_additional3_test.go | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 pkg/reporting/engine_additional3_test.go diff --git a/pkg/reporting/engine_additional3_test.go b/pkg/reporting/engine_additional3_test.go new file mode 100644 index 000000000..bf15d9cb2 --- /dev/null +++ b/pkg/reporting/engine_additional3_test.go @@ -0,0 +1,49 @@ +package reporting + +import ( + "strings" + "testing" + "time" + + "github.com/rcourtman/pulse-go-rewrite/pkg/metrics" +) + +func TestReportEngineGenerateMultiDefaultTitleAndMetricFilter(t *testing.T) { + store := newTestMetricsStore(t) + defer store.Close() + + base := time.Now().Add(-10 * time.Minute) + store.WriteBatchSync([]metrics.WriteMetric{ + {ResourceType: "node", ResourceID: "node-1", MetricType: "cpu", Value: 10, Timestamp: base, Tier: metrics.TierRaw}, + {ResourceType: "node", ResourceID: "node-1", MetricType: "memory", Value: 50, Timestamp: base, Tier: metrics.TierRaw}, + {ResourceType: "node", ResourceID: "node-2", MetricType: "cpu", Value: 20, Timestamp: base, Tier: metrics.TierRaw}, + {ResourceType: "node", ResourceID: "node-2", MetricType: "memory", Value: 60, Timestamp: base, Tier: metrics.TierRaw}, + }) + + engine := NewReportEngine(EngineConfig{MetricsStore: store}) + + data, _, err := engine.GenerateMulti(MultiReportRequest{ + Resources: []MetricReportRequest{ + {ResourceType: "node", ResourceID: "node-1"}, + {ResourceType: "node", ResourceID: "node-2"}, + }, + Start: base.Add(-1 * time.Minute), + End: base.Add(1 * time.Minute), + Format: FormatCSV, + MetricType: "cpu", + }) + if err != nil { + t.Fatalf("GenerateMulti failed: %v", err) + } + + csv := string(data) + if !strings.Contains(csv, "Fleet Performance Report") { + t.Fatal("expected default multi-report title") + } + if !strings.Contains(csv, "CPU Usage") { + t.Fatal("expected CPU metric in output") + } + if strings.Contains(csv, "Memory Usage") { + t.Fatal("did not expect Memory metric when filtering on cpu") + } +}