@@ -16,15 +16,7 @@ limitations under the License.
16
16
17
17
import { type Mock } from "jest-mock" ;
18
18
19
- import {
20
- ClientEvent ,
21
- EventTimeline ,
22
- EventType ,
23
- type IRoomTimelineData ,
24
- MatrixClient ,
25
- type MatrixEvent ,
26
- RoomEvent ,
27
- } from "../../../src" ;
19
+ import { ClientEvent , EventTimeline , MatrixClient } from "../../../src" ;
28
20
import { RoomStateEvent } from "../../../src/models/room-state" ;
29
21
import { MatrixRTCSessionManagerEvents } from "../../../src/matrixrtc/MatrixRTCSessionManager" ;
30
22
import { makeMockRoom , makeMockRoomState , membershipTemplate } from "./mocks" ;
@@ -77,117 +69,4 @@ describe("MatrixRTCSessionManager", () => {
77
69
78
70
expect ( onEnded ) . toHaveBeenCalledWith ( room1 . roomId , client . matrixRTC . getActiveRoomSession ( room1 ) ) ;
79
71
} ) ;
80
-
81
- it ( "Calls onCallEncryption on encryption keys event" , async ( ) => {
82
- const room1 = makeMockRoom ( [ membershipTemplate ] ) ;
83
- jest . spyOn ( client , "getRooms" ) . mockReturnValue ( [ room1 ] ) ;
84
- jest . spyOn ( client , "getRoom" ) . mockReturnValue ( room1 ) ;
85
-
86
- client . emit ( ClientEvent . Room , room1 ) ;
87
- const onCallEncryptionMock = jest . fn ( ) ;
88
- client . matrixRTC . getRoomSession ( room1 ) . onCallEncryption = onCallEncryptionMock ;
89
- client . decryptEventIfNeeded = ( ) => Promise . resolve ( ) ;
90
- const timelineEvent = {
91
- getType : jest . fn ( ) . mockReturnValue ( EventType . CallEncryptionKeysPrefix ) ,
92
- getContent : jest . fn ( ) . mockReturnValue ( { } ) ,
93
- getSender : jest . fn ( ) . mockReturnValue ( "@mock:user.example" ) ,
94
- getRoomId : jest . fn ( ) . mockReturnValue ( "!room:id" ) ,
95
- isDecryptionFailure : jest . fn ( ) . mockReturnValue ( false ) ,
96
- sender : {
97
- userId : "@mock:user.example" ,
98
- } ,
99
- } as unknown as MatrixEvent ;
100
- client . emit ( RoomEvent . Timeline , timelineEvent , undefined , undefined , false , { } as IRoomTimelineData ) ;
101
- await new Promise ( process . nextTick ) ;
102
- expect ( onCallEncryptionMock ) . toHaveBeenCalled ( ) ;
103
- } ) ;
104
-
105
- describe ( "event decryption" , ( ) => {
106
- it ( "Retries decryption and processes success" , async ( ) => {
107
- try {
108
- jest . useFakeTimers ( ) ;
109
- const room1 = makeMockRoom ( [ membershipTemplate ] ) ;
110
- jest . spyOn ( client , "getRooms" ) . mockReturnValue ( [ room1 ] ) ;
111
- jest . spyOn ( client , "getRoom" ) . mockReturnValue ( room1 ) ;
112
-
113
- client . emit ( ClientEvent . Room , room1 ) ;
114
- const onCallEncryptionMock = jest . fn ( ) ;
115
- client . matrixRTC . getRoomSession ( room1 ) . onCallEncryption = onCallEncryptionMock ;
116
- let isDecryptionFailure = true ;
117
- client . decryptEventIfNeeded = jest
118
- . fn ( )
119
- . mockReturnValueOnce ( Promise . resolve ( ) )
120
- . mockImplementation ( ( ) => {
121
- isDecryptionFailure = false ;
122
- return Promise . resolve ( ) ;
123
- } ) ;
124
- const timelineEvent = {
125
- getType : jest . fn ( ) . mockReturnValue ( EventType . CallEncryptionKeysPrefix ) ,
126
- getContent : jest . fn ( ) . mockReturnValue ( { } ) ,
127
- getSender : jest . fn ( ) . mockReturnValue ( "@mock:user.example" ) ,
128
- getRoomId : jest . fn ( ) . mockReturnValue ( "!room:id" ) ,
129
- isDecryptionFailure : jest . fn ( ) . mockImplementation ( ( ) => isDecryptionFailure ) ,
130
- getId : jest . fn ( ) . mockReturnValue ( "event_id" ) ,
131
- sender : {
132
- userId : "@mock:user.example" ,
133
- } ,
134
- } as unknown as MatrixEvent ;
135
- client . emit ( RoomEvent . Timeline , timelineEvent , undefined , undefined , false , { } as IRoomTimelineData ) ;
136
-
137
- expect ( client . decryptEventIfNeeded ) . toHaveBeenCalledTimes ( 1 ) ;
138
- expect ( onCallEncryptionMock ) . toHaveBeenCalledTimes ( 0 ) ;
139
-
140
- // should retry after one second:
141
- await jest . advanceTimersByTimeAsync ( 1500 ) ;
142
-
143
- expect ( client . decryptEventIfNeeded ) . toHaveBeenCalledTimes ( 2 ) ;
144
- expect ( onCallEncryptionMock ) . toHaveBeenCalledTimes ( 1 ) ;
145
- } finally {
146
- jest . useRealTimers ( ) ;
147
- }
148
- } ) ;
149
-
150
- it ( "Retries decryption and processes failure" , async ( ) => {
151
- try {
152
- jest . useFakeTimers ( ) ;
153
- const room1 = makeMockRoom ( [ membershipTemplate ] ) ;
154
- jest . spyOn ( client , "getRooms" ) . mockReturnValue ( [ room1 ] ) ;
155
- jest . spyOn ( client , "getRoom" ) . mockReturnValue ( room1 ) ;
156
-
157
- client . emit ( ClientEvent . Room , room1 ) ;
158
- const onCallEncryptionMock = jest . fn ( ) ;
159
- client . matrixRTC . getRoomSession ( room1 ) . onCallEncryption = onCallEncryptionMock ;
160
- client . decryptEventIfNeeded = jest . fn ( ) . mockReturnValue ( Promise . resolve ( ) ) ;
161
- const timelineEvent = {
162
- getType : jest . fn ( ) . mockReturnValue ( EventType . CallEncryptionKeysPrefix ) ,
163
- getContent : jest . fn ( ) . mockReturnValue ( { } ) ,
164
- getSender : jest . fn ( ) . mockReturnValue ( "@mock:user.example" ) ,
165
- getRoomId : jest . fn ( ) . mockReturnValue ( "!room:id" ) ,
166
- isDecryptionFailure : jest . fn ( ) . mockReturnValue ( true ) , // always fail
167
- getId : jest . fn ( ) . mockReturnValue ( "event_id" ) ,
168
- sender : {
169
- userId : "@mock:user.example" ,
170
- } ,
171
- } as unknown as MatrixEvent ;
172
- client . emit ( RoomEvent . Timeline , timelineEvent , undefined , undefined , false , { } as IRoomTimelineData ) ;
173
-
174
- expect ( client . decryptEventIfNeeded ) . toHaveBeenCalledTimes ( 1 ) ;
175
- expect ( onCallEncryptionMock ) . toHaveBeenCalledTimes ( 0 ) ;
176
-
177
- // should retry after one second:
178
- await jest . advanceTimersByTimeAsync ( 1500 ) ;
179
-
180
- expect ( client . decryptEventIfNeeded ) . toHaveBeenCalledTimes ( 2 ) ;
181
- expect ( onCallEncryptionMock ) . toHaveBeenCalledTimes ( 0 ) ;
182
-
183
- // doesn't retry again:
184
- await jest . advanceTimersByTimeAsync ( 1500 ) ;
185
-
186
- expect ( client . decryptEventIfNeeded ) . toHaveBeenCalledTimes ( 2 ) ;
187
- expect ( onCallEncryptionMock ) . toHaveBeenCalledTimes ( 0 ) ;
188
- } finally {
189
- jest . useRealTimers ( ) ;
190
- }
191
- } ) ;
192
- } ) ;
193
72
} ) ;
0 commit comments