diff --git a/packages/server/app/components/TimeSeriesChart.tsx b/packages/server/app/components/TimeSeriesChart.tsx index bc2e2b9d..5b016480 100644 --- a/packages/server/app/components/TimeSeriesChart.tsx +++ b/packages/server/app/components/TimeSeriesChart.tsx @@ -162,7 +162,7 @@ export default function TimeSeriesChart({ diff --git a/packages/server/app/components/__tests__/TimeSeriesChart.test.tsx b/packages/server/app/components/__tests__/TimeSeriesChart.test.tsx new file mode 100644 index 00000000..d6d153b0 --- /dev/null +++ b/packages/server/app/components/__tests__/TimeSeriesChart.test.tsx @@ -0,0 +1,59 @@ +// @vitest-environment jsdom +import { render, screen, cleanup } from "@testing-library/react"; +import { afterEach, describe, expect, test, vi } from "vitest"; +import "vitest-dom/extend-expect"; + +import TimeSeriesChart from "../TimeSeriesChart"; + +vi.mock("recharts", () => ({ + ResponsiveContainer: ({ children }: { children: React.ReactNode }) => ( +
{children}
+ ), + ComposedChart: ({ children }: { children: React.ReactNode }) => ( +
{children}
+ ), + CartesianGrid: () => null, + XAxis: () => null, + YAxis: ({ + yAxisId, + domain, + }: { + yAxisId: string; + domain: [number, number]; + }) => ( +
+ ), + Tooltip: () => null, + Area: () => null, + Line: () => null, +})); + +describe("TimeSeriesChart", () => { + afterEach(() => { + cleanup(); + }); + + test("scales bounce rate against a fixed 0–100% domain", () => { + render( + , + ); + + expect(screen.getByTestId("y-axis-bounceRate")).toHaveAttribute( + "data-domain", + "[0,100]", + ); + }); +});