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(); } });