// @vitest-environment jsdom
import { cleanup, fireEvent, render, screen } from "@testing-library/react";
import { afterEach, describe, expect, it, vi } from "vitest";
import RefreshRateSelect from "./refresh-rate-select";
const replace = vi.fn();
vi.mock("next/navigation", () => ({
useRouter: () => ({ replace }),
usePathname: () => "/",
}));
afterEach(cleanup);
describe("RefreshRateSelect", () => {
it("shows the current rate and every option in seconds", () => {
render();
const select = screen.getByRole("combobox");
expect(select.value).toBe("500");
expect([...select.options].map((o) => o.text)).toEqual(["0.25 s", "0.5 s", "1 s", "2 s", "5 s"]);
});
it("writes the chosen rate to the URL without scrolling", () => {
render();
fireEvent.change(screen.getByRole("combobox"), { target: { value: "250" } });
expect(replace).toHaveBeenCalledWith("/?refresh=250", { scroll: false });
});
});