@@ -7,13 +7,13 @@ Please see LICENSE files in the repository root for full details.
7
7
*/
8
8
9
9
import React from "react" ;
10
- import { EventTimelineSet , PendingEventOrdering , Room } from "matrix-js-sdk/src/matrix" ;
10
+ import { EventTimelineSet , PendingEventOrdering , Room , RoomEvent } from "matrix-js-sdk/src/matrix" ;
11
11
import { screen , render , waitFor } from "jest-matrix-react" ;
12
12
import { mocked } from "jest-mock" ;
13
13
14
14
import FilePanel from "../../../../src/components/structures/FilePanel" ;
15
15
import ResizeNotifier from "../../../../src/utils/ResizeNotifier" ;
16
- import { stubClient } from "../../../test-utils" ;
16
+ import { mkEvent , stubClient } from "../../../test-utils" ;
17
17
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg" ;
18
18
19
19
jest . mock ( "matrix-js-sdk/src/matrix" , ( ) => ( {
@@ -47,4 +47,43 @@ describe("FilePanel", () => {
47
47
} ) ;
48
48
expect ( asFragment ( ) ) . toMatchSnapshot ( ) ;
49
49
} ) ;
50
+
51
+ describe ( "addEncryptedLiveEvent" , ( ) => {
52
+ it ( "should add file msgtype event to filtered timelineSet" , async ( ) => {
53
+ const cli = MatrixClientPeg . safeGet ( ) ;
54
+ const room = new Room ( "!room:server" , cli , cli . getSafeUserId ( ) , {
55
+ pendingEventOrdering : PendingEventOrdering . Detached ,
56
+ } ) ;
57
+ cli . reEmitter . reEmit ( room , [ RoomEvent . Timeline ] ) ;
58
+ const timelineSet = new EventTimelineSet ( room ) ;
59
+ room . getOrCreateFilteredTimelineSet = jest . fn ( ) . mockReturnValue ( timelineSet ) ;
60
+ mocked ( cli . getRoom ) . mockReturnValue ( room ) ;
61
+
62
+ let filePanel : FilePanel | null ;
63
+ render (
64
+ < FilePanel
65
+ roomId = { room . roomId }
66
+ onClose = { jest . fn ( ) }
67
+ resizeNotifier = { new ResizeNotifier ( ) }
68
+ ref = { ( ref ) => ( filePanel = ref ) }
69
+ /> ,
70
+ ) ;
71
+ await screen . findByText ( "No files visible in this room" ) ;
72
+
73
+ const event = mkEvent ( {
74
+ type : "m.room.message" ,
75
+ user : cli . getSafeUserId ( ) ,
76
+ room : room . roomId ,
77
+ content : {
78
+ body : "hello" ,
79
+ url : "mxc://matrix.org/1234" ,
80
+ msgtype : "m.file" ,
81
+ } ,
82
+ event : true ,
83
+ } ) ;
84
+ filePanel ! . addEncryptedLiveEvent ( event ) ;
85
+
86
+ expect ( timelineSet . getLiveTimeline ( ) . getEvents ( ) ) . toContain ( event ) ;
87
+ } ) ;
88
+ } ) ;
50
89
} ) ;
0 commit comments