|
8 | 8 | import React from "react";
|
9 | 9 | import { type MatrixClient } from "matrix-js-sdk/src/matrix";
|
10 | 10 | import { render } from "jest-matrix-react";
|
| 11 | +import { fireEvent } from "@testing-library/dom"; |
11 | 12 |
|
12 | 13 | import { mkRoom, stubClient } from "../../../../../test-utils";
|
13 | 14 | import { type RoomListViewState } from "../../../../../../src/components/viewmodels/roomlist/RoomListViewModel";
|
14 | 15 | import { RoomList } from "../../../../../../src/components/views/rooms/RoomListPanel/RoomList";
|
15 | 16 | import DMRoomMap from "../../../../../../src/utils/DMRoomMap";
|
16 | 17 | import { SecondaryFilters } from "../../../../../../src/components/viewmodels/roomlist/useFilteredRooms";
|
17 | 18 | import { SortOption } from "../../../../../../src/components/viewmodels/roomlist/useSorter";
|
| 19 | +import { Landmark, LandmarkNavigation } from "../../../../../../src/accessibility/LandmarkNavigation"; |
18 | 20 |
|
19 | 21 | describe("<RoomList />", () => {
|
20 | 22 | let matrixClient: MatrixClient;
|
@@ -53,4 +55,16 @@ describe("<RoomList />", () => {
|
53 | 55 | const { asFragment } = render(<RoomList vm={vm} />);
|
54 | 56 | expect(asFragment()).toMatchSnapshot();
|
55 | 57 | });
|
| 58 | + |
| 59 | + it.each([ |
| 60 | + { shortcut: { key: "F6", ctrlKey: true, shiftKey: true }, isPreviousLandmark: true, label: "PreviousLandmark" }, |
| 61 | + { shortcut: { key: "F6", ctrlKey: true }, isPreviousLandmark: false, label: "NextLandmark" }, |
| 62 | + ])("should navigate to the landmark on NextLandmark.$label action", ({ shortcut, isPreviousLandmark }) => { |
| 63 | + const spyFindLandmark = jest.spyOn(LandmarkNavigation, "findAndFocusNextLandmark").mockReturnValue(); |
| 64 | + const { getByTestId } = render(<RoomList vm={vm} />); |
| 65 | + const roomList = getByTestId("room-list"); |
| 66 | + fireEvent.keyDown(roomList, shortcut); |
| 67 | + |
| 68 | + expect(spyFindLandmark).toHaveBeenCalledWith(Landmark.ROOM_LIST, isPreviousLandmark); |
| 69 | + }); |
56 | 70 | });
|
0 commit comments