UNPKG

monday-ui-react-core

Version:

Official monday.com UI resources for application development in React.js

47 lines (35 loc) 1.69 kB
import { expect } from "@storybook/jest"; import { getByText, interactionSuite, clickElement, typeMultipleTimes } from "../../../tests/interactions-utils"; import { resetFocus } from "../../../__tests__/interactions-helper"; //NOTE: this test may fail if it runs when the storybook page isn't focused. (For example, during an HMR refresh without focusing the storybook tab) const multiGridLayoutKeyboardNavigation = async canvas => { const topLeft3Item = await getByText(canvas, "TL 3"); clickElement(topLeft3Item); await typeMultipleTimes("{arrowRight}", 2); await assertElementWithTextToBeActive("TL 5"); await typeMultipleTimes("{arrowRight}", 2); await assertElementWithTextToBeActive("TR 1"); await typeMultipleTimes("{arrowDown}", 2); await assertElementWithTextToBeActive("TR 5"); await typeMultipleTimes("{arrowLeft}", 3); await assertElementWithTextToBeActive("TL 1"); await typeMultipleTimes("{arrowDown}", 4); await assertElementWithTextToBeActive("TB 5"); await typeMultipleTimes("{arrowDown}", 1); await assertElementWithTextToBeActive("BL 1"); await typeMultipleTimes("{arrowUp}", 1); await assertElementWithTextToBeActive("TB 5"); await typeMultipleTimes("{arrowUp}", 3); await assertElementWithTextToBeActive("TL 4"); }; export const useGridContextMultipleDepthsPlaySuite = interactionSuite({ tests: [multiGridLayoutKeyboardNavigation], afterEach: async () => { await resetFocus(); } }); async function assertElementWithTextToBeActive(text) { const activeElements = document.getElementsByClassName("active-item"); expect(activeElements).toHaveLength(1); expect(activeElements[0]).toHaveTextContent(text); }