import { render, screen, act } from "@testing-library/react";
import { ElapsedTimer } from "./ElapsedTimer";
test("starts at zero", () => {
render();
expect(screen.getByText("0m 0s")).toBeInTheDocument();
});
test("accumulates while running, pauses when not, then resumes", () => {
vi.useFakeTimers();
try {
const { rerender } = render();
act(() => vi.advanceTimersByTime(3000));
expect(screen.getByText("0m 3s")).toBeInTheDocument();
// Gate awaiting the reviewer: processing time must NOT advance.
rerender();
act(() => vi.advanceTimersByTime(10000));
expect(screen.getByText("0m 3s")).toBeInTheDocument();
// Reviewer answered, processing resumes.
rerender();
act(() => vi.advanceTimersByTime(2000));
expect(screen.getByText("0m 5s")).toBeInTheDocument();
} finally {
vi.useRealTimers();
}
});