mirror of
https://github.com/MeshCore-Beacon/beacon-web.git
synced 2026-10-16 15:50:08 +00:00
22 lines
943 B
TypeScript
22 lines
943 B
TypeScript
import { describe, it, expect, vi, afterEach } from "vitest";
|
|
import { render, screen, fireEvent } from "@testing-library/react";
|
|
import { MultiSelectDropdown } from "../../src/components/MultiSelectDropdown";
|
|
|
|
describe("MultiSelectDropdown", () => {
|
|
const onWindowKey = vi.fn();
|
|
afterEach(() => window.removeEventListener("keydown", onWindowKey));
|
|
|
|
it("closes on Escape without letting an enclosing sheet close too", () => {
|
|
window.addEventListener("keydown", onWindowKey);
|
|
render(<MultiSelectDropdown label="Types" options={[{ value: "a", label: "A" }]} selected={[]} onChange={() => {}} />);
|
|
const trigger = screen.getByRole("button", { name: /Types/ });
|
|
fireEvent.click(trigger);
|
|
expect(trigger).toHaveAttribute("aria-expanded", "true");
|
|
|
|
fireEvent.keyDown(document, { key: "Escape" });
|
|
|
|
expect(trigger).toHaveAttribute("aria-expanded", "false");
|
|
expect(onWindowKey).not.toHaveBeenCalled();
|
|
});
|
|
});
|