@@ -21,6 +21,7 @@ import {
21
21
SearchResult ,
22
22
IEvent ,
23
23
} from "matrix-js-sdk/src/matrix" ;
24
+ import { CryptoApi , UserVerificationStatus } from "matrix-js-sdk/src/crypto-api" ;
24
25
import { KnownMembership } from "matrix-js-sdk/src/types" ;
25
26
import { fireEvent , render , screen , RenderResult , waitForElementToBeRemoved , waitFor } from "jest-matrix-react" ;
26
27
import userEvent from "@testing-library/user-event" ;
@@ -72,14 +73,14 @@ describe("RoomView", () => {
72
73
let rooms : Map < string , Room > ;
73
74
let roomCount = 0 ;
74
75
let stores : SdkContextClass ;
76
+ let cryptoApi : CryptoApi ;
75
77
76
78
// mute some noise
77
79
filterConsole ( "RVS update" , "does not have an m.room.create event" , "Current version: 1" , "Version capability" ) ;
78
80
79
81
beforeEach ( ( ) => {
80
82
mockPlatformPeg ( { reload : ( ) => { } } ) ;
81
- stubClient ( ) ;
82
- cli = mocked ( MatrixClientPeg . safeGet ( ) ) ;
83
+ cli = mocked ( stubClient ( ) ) ;
83
84
84
85
room = new Room ( `!${ roomCount ++ } :example.org` , cli , "@alice:example.org" ) ;
85
86
jest . spyOn ( room , "findPredecessor" ) ;
@@ -97,6 +98,7 @@ describe("RoomView", () => {
97
98
stores . rightPanelStore . useUnitTestClient ( cli ) ;
98
99
99
100
jest . spyOn ( VoipUserMapper . sharedInstance ( ) , "getVirtualRoomForRoom" ) . mockResolvedValue ( undefined ) ;
101
+ cryptoApi = cli . getCrypto ( ) ! ;
100
102
jest . spyOn ( cli , "getCrypto" ) . mockReturnValue ( undefined ) ;
101
103
} ) ;
102
104
@@ -230,8 +232,9 @@ describe("RoomView", () => {
230
232
231
233
it ( "updates url preview visibility on encryption state change" , async ( ) => {
232
234
room . getMyMembership = jest . fn ( ) . mockReturnValue ( KnownMembership . Join ) ;
235
+ jest . spyOn ( cli , "getCrypto" ) . mockReturnValue ( cryptoApi ) ;
233
236
// we should be starting unencrypted
234
- expect ( cli . isRoomEncrypted ( room . roomId ) ) . toEqual ( false ) ;
237
+ expect ( await cli . getCrypto ( ) ?. isEncryptionEnabledInRoom ( room . roomId ) ) . toEqual ( false ) ;
235
238
236
239
const roomViewInstance = await getRoomViewInstance ( ) ;
237
240
@@ -246,10 +249,10 @@ describe("RoomView", () => {
246
249
expect ( roomViewInstance . state . showUrlPreview ) . toBe ( true ) ;
247
250
248
251
// now enable encryption
249
- cli . isRoomEncrypted . mockReturnValue ( true ) ;
252
+ jest . spyOn ( cli . getCrypto ( ) ! , "isEncryptionEnabledInRoom" ) . mockResolvedValue ( true ) ;
250
253
251
254
// and fake an encryption event into the room to prompt it to re-check
252
- room . addLiveEvents ( [
255
+ await room . addLiveEvents ( [
253
256
new MatrixEvent ( {
254
257
type : "m.room.encryption" ,
255
258
sender : cli . getUserId ( ) ! ,
@@ -341,6 +344,11 @@ describe("RoomView", () => {
341
344
342
345
describe ( "that is encrypted" , ( ) => {
343
346
beforeEach ( ( ) => {
347
+ jest . spyOn ( cli , "getCrypto" ) . mockReturnValue ( cryptoApi ) ;
348
+ jest . spyOn ( cli . getCrypto ( ) ! , "isEncryptionEnabledInRoom" ) . mockResolvedValue ( true ) ;
349
+ jest . spyOn ( cli . getCrypto ( ) ! , "getUserVerificationStatus" ) . mockResolvedValue (
350
+ new UserVerificationStatus ( false , true , false ) ,
351
+ ) ;
344
352
mocked ( cli . isRoomEncrypted ) . mockReturnValue ( true ) ;
345
353
localRoom . encrypted = true ;
346
354
localRoom . currentState . setStateEvents ( [
@@ -402,7 +410,8 @@ describe("RoomView", () => {
402
410
] ) ;
403
411
jest . spyOn ( DMRoomMap . shared ( ) , "getUserIdForRoomId" ) . mockReturnValue ( cli . getSafeUserId ( ) ) ;
404
412
jest . spyOn ( DMRoomMap . shared ( ) , "getRoomIds" ) . mockReturnValue ( new Set ( [ room . roomId ] ) ) ;
405
- mocked ( cli ) . isRoomEncrypted . mockReturnValue ( true ) ;
413
+ jest . spyOn ( cli , "getCrypto" ) . mockReturnValue ( cryptoApi ) ;
414
+ jest . spyOn ( cli . getCrypto ( ) ! , "isEncryptionEnabledInRoom" ) . mockResolvedValue ( true ) ;
406
415
await renderRoomView ( ) ;
407
416
} ) ;
408
417
0 commit comments