package sparkline import ( "os" "path/filepath" "strings" "testing" ) func loadGolden(t *testing.T, name string) string { t.Helper() b, err := os.ReadFile(filepath.Join("testdata", name)) if err != nil { t.Fatalf("read golden %s: %v", name, err) } return strings.TrimRight(string(b), "\n") } func TestSparkline_Empty(t *testing.T) { got := strings.TrimRight(string(RenderSparkline(nil, 80, 20)), "\n") want := loadGolden(t, "empty.svg") if got != want { t.Errorf("empty sparkline mismatch:\nwant:\n%s\ngot:\n%s", want, got) } } func TestSparkline_SinglePoint(t *testing.T) { got := strings.TrimRight(string(RenderSparkline([]float64{100}, 80, 20)), "\n") want := loadGolden(t, "single_point.svg") if got != want { t.Errorf("single_point sparkline mismatch:\nwant:\n%s\ngot:\n%s", want, got) } } func TestSparkline_ThreePoints(t *testing.T) { got := strings.TrimRight(string(RenderSparkline([]float64{10, 30, 20}, 80, 20)), "\n") want := loadGolden(t, "three_points.svg") if got != want { t.Errorf("three_points sparkline mismatch:\nwant:\n%s\ngot:\n%s", want, got) } }