// @vitest-environment happy-dom
import { afterEach, beforeAll, describe, expect, it, vi } from "vitest";
import { cleanup, render, screen, fireEvent } from "@testing-library/react";
import { setup } from "goober";
import React from "react";
import { SubscriptionRow } from "../../../pages/performance/SubscriptionRow.js";
beforeAll(() => {
setup(React.createElement);
});
afterEach(() => {
cleanup();
});
describe("SubscriptionRow", () => {
const mockEntry = {
uuid: "test-uuid",
id: "co_z123",
source: "useCoState",
resolve: "{}",
status: "loaded" as const,
startTime: 0,
endTime: 100,
duration: 100,
};
it("triggers selection on Enter key", () => {
const onSelect = vi.fn();
render(
,
);
fireEvent.keyDown(screen.getByRole("button"), { key: "Enter" });
expect(onSelect).toHaveBeenCalled();
});
it("triggers selection on Space key", () => {
const onSelect = vi.fn();
render(
,
);
fireEvent.keyDown(screen.getByRole("button"), { key: " " });
expect(onSelect).toHaveBeenCalled();
});
it("is focusable with tabIndex", () => {
render(
{}}
barLeft="0%"
barWidth="10%"
barColor="green"
/>,
);
expect(screen.getByRole("button").getAttribute("tabindex")).toBe("0");
});
it("triggers selection on click", () => {
const onSelect = vi.fn();
render(
,
);
fireEvent.click(screen.getByRole("button"));
expect(onSelect).toHaveBeenCalled();
});
});