7
7
8
8
import React from "react" ;
9
9
import { type MatrixClient , type Room } from "matrix-js-sdk/src/matrix" ;
10
- import { render , screen } from "jest-matrix-react" ;
10
+ import { render , screen , waitFor } from "jest-matrix-react" ;
11
11
import userEvent from "@testing-library/user-event" ;
12
12
import { mocked } from "jest-mock" ;
13
13
14
- import { mkRoom , stubClient } from "../../../../../test-utils" ;
14
+ import { mkRoom , stubClient , withClientContextRenderOptions } from "../../../../../test-utils" ;
15
15
import { RoomListItemView } from "../../../../../../src/components/views/rooms/RoomListPanel/RoomListItemView" ;
16
16
import DMRoomMap from "../../../../../../src/utils/DMRoomMap" ;
17
17
import {
@@ -26,6 +26,7 @@ jest.mock("../../../../../../src/components/viewmodels/roomlist/RoomListItemView
26
26
describe ( "<RoomListItemView />" , ( ) => {
27
27
const defaultValue : RoomListItemViewState = {
28
28
openRoom : jest . fn ( ) ,
29
+ showHoverMenu : false ,
29
30
} ;
30
31
let matrixClient : MatrixClient ;
31
32
let room : Room ;
@@ -52,4 +53,16 @@ describe("<RoomListItemView />", () => {
52
53
await user . click ( screen . getByRole ( "button" , { name : `Open room ${ room . name } ` } ) ) ;
53
54
expect ( defaultValue . openRoom ) . toHaveBeenCalled ( ) ;
54
55
} ) ;
56
+
57
+ test ( "should hover decoration if hovered" , async ( ) => {
58
+ mocked ( useRoomListItemViewModel ) . mockReturnValue ( { ...defaultValue , showHoverMenu : true } ) ;
59
+
60
+ const user = userEvent . setup ( ) ;
61
+ render ( < RoomListItemView room = { room } /> , withClientContextRenderOptions ( matrixClient ) ) ;
62
+ const listItem = screen . getByRole ( "button" , { name : `Open room ${ room . name } ` } ) ;
63
+ expect ( screen . queryByRole ( "button" , { name : "More Options" } ) ) . toBeNull ( ) ;
64
+
65
+ await user . hover ( listItem ) ;
66
+ await waitFor ( ( ) => expect ( screen . getByRole ( "button" , { name : "More Options" } ) ) . toBeInTheDocument ( ) ) ;
67
+ } ) ;
55
68
} ) ;
0 commit comments