import { render, screen } from "@testing-library/react";
// eslint-disable-next-line import/no-named-as-default
import userEvent from "@testing-library/user-event";
import { InputSearchList } from "./InputSearchList";
import { InputSearchRoot } from "./InputSearchRoot";
import { InputSearchInput } from "./InputSearchInput";
import { InputSearchPopover } from "./InputSearchPopover";
import { InputSearchListItem } from "./InputSearchListItem";
describe("InputSearchList", () => {
const customRender = (ui, contextProps) => {
return render({ui});
};
test("renders visibly into the document", () => {
customRender(test, {});
expect(screen.getByRole("listbox")).toBeInTheDocument();
});
test("renders with custom CSS class", () => {
customRender(
test,
{}
);
expect(screen.getByRole("listbox")).toHaveClass(/wpds-.*-css/);
});
/** test persistSelection prop */
test("uses persistSelection prop", async () => {
const user = userEvent.setup();
customRender(
<>
>,
{ openOnFocus: true }
);
const input = screen.getByRole("combobox");
await user.click(input);
await user.keyboard("[ArrowDown]");
await user.keyboard("[ArrowDown]");
await user.keyboard("[Enter]");
await user.click(document.body);
await user.click(input);
const item = screen.getAllByRole("option")[1];
expect(item).toHaveAttribute("aria-selected", "true");
expect(item).toHaveClass(/wpds-.*-focused-true/);
});
});