MAESTRO: improve keyboard access for test selector

This commit is contained in:
Mariusz Banach
2026-02-18 01:32:17 +01:00
parent 997056ad4f
commit 561fed5860
4 changed files with 89 additions and 2 deletions

View File

@@ -164,6 +164,43 @@ describe("TestSelector", () => {
});
});
it("supports keyboard activation for select and deselect", async () => {
setupFetchMock(sampleTests);
const TestSelectorHarness = () => {
const [selected, setSelected] = useState<number[]>([]);
return <TestSelector selectedTestIds={selected} onSelectionChange={setSelected} />;
};
const { container } = render(<TestSelectorHarness />);
await act(async () => {
await flushPromises();
});
const selectAllButton = getSelectAllButton(container);
act(() => {
selectAllButton.dispatchEvent(
new KeyboardEvent("keydown", { key: "Enter", bubbles: true }),
);
});
sampleTests.forEach((test) => {
expect(getCheckbox(container, test.id).checked).toBe(true);
});
const deselectAllButton = getDeselectAllButton(container);
act(() => {
deselectAllButton.dispatchEvent(
new KeyboardEvent("keydown", { key: " ", bubbles: true }),
);
});
sampleTests.forEach((test) => {
expect(getCheckbox(container, test.id).checked).toBe(false);
});
});
it("filters tests by search text", async () => {
setupFetchMock(sampleTests);