@@ -375,55 +375,73 @@ describe("<TextualBody />", () => {
375
375
} ) ;
376
376
} ) ;
377
377
378
- it ( "renders url previews correctly ", ( ) => {
379
- languageHandler . setMissingEntryGenerator ( ( key ) => key . split ( "|" , 2 ) [ 1 ] ) ;
378
+ describe ( " url preview ", ( ) => {
379
+ let matrixClient : MatrixClient ;
380
380
381
- const matrixClient = getMockClientWithEventEmitter ( {
382
- getRoom : ( ) => mkStubRoom ( "room_id" , "room name" , undefined ) ,
383
- getAccountData : ( ) : MatrixClient | undefined => undefined ,
384
- getUrlPreview : ( url : string ) => new Promise ( ( ) => { } ) ,
385
- isGuest : ( ) => false ,
386
- mxcUrlToHttp : ( s : string ) => s ,
381
+ beforeEach ( ( ) => {
382
+ languageHandler . setMissingEntryGenerator ( ( key ) => key . split ( "|" , 2 ) [ 1 ] ) ;
383
+ matrixClient = getMockClientWithEventEmitter ( {
384
+ getRoom : ( ) => mkStubRoom ( "room_id" , "room name" , undefined ) ,
385
+ getAccountData : ( ) : MatrixClient | undefined => undefined ,
386
+ getUrlPreview : ( url : string ) => new Promise ( ( ) => { } ) ,
387
+ isGuest : ( ) => false ,
388
+ mxcUrlToHttp : ( s : string ) => s ,
389
+ } ) ;
390
+ DMRoomMap . makeShared ( defaultMatrixClient ) ;
387
391
} ) ;
388
- DMRoomMap . makeShared ( defaultMatrixClient ) ;
389
392
390
- const ev = mkRoomTextMessage ( "Visit https://matrix.org/" ) ;
391
- const { container, rerender } = getComponent (
392
- { mxEvent : ev , showUrlPreview : true , onHeightChanged : jest . fn ( ) } ,
393
- matrixClient ,
394
- ) ;
393
+ it ( "renders url previews correctly" , ( ) => {
394
+ const ev = mkRoomTextMessage ( "Visit https://matrix.org/" ) ;
395
+ const { container, rerender } = getComponent (
396
+ { mxEvent : ev , showUrlPreview : true , onHeightChanged : jest . fn ( ) } ,
397
+ matrixClient ,
398
+ ) ;
395
399
396
- expect ( container ) . toHaveTextContent ( ev . getContent ( ) . body ) ;
397
- expect ( container . querySelector ( "a" ) ) . toHaveAttribute ( "href" , "https://matrix.org/" ) ;
400
+ expect ( container ) . toHaveTextContent ( ev . getContent ( ) . body ) ;
401
+ expect ( container . querySelector ( "a" ) ) . toHaveAttribute ( "href" , "https://matrix.org/" ) ;
398
402
399
- // simulate an event edit and check the transition from the old URL preview to the new one
400
- const ev2 = mkEvent ( {
401
- type : "m.room.message" ,
402
- room : "room_id" ,
403
- user : "sender" ,
404
- content : {
405
- "m.new_content" : {
406
- body : "Visit https://vector.im/ and https://riot.im/" ,
407
- msgtype : "m.text" ,
403
+ // simulate an event edit and check the transition from the old URL preview to the new one
404
+ const ev2 = mkEvent ( {
405
+ type : "m.room.message" ,
406
+ room : "room_id" ,
407
+ user : "sender" ,
408
+ content : {
409
+ "m.new_content" : {
410
+ body : "Visit https://vector.im/ and https://riot.im/" ,
411
+ msgtype : "m.text" ,
412
+ } ,
408
413
} ,
409
- } ,
410
- event : true ,
414
+ event : true ,
415
+ } ) ;
416
+ jest . spyOn ( ev , "replacingEventDate" ) . mockReturnValue ( new Date ( 1993 , 7 , 3 ) ) ;
417
+ ev . makeReplaced ( ev2 ) ;
418
+
419
+ getComponent (
420
+ { mxEvent : ev , showUrlPreview : true , onHeightChanged : jest . fn ( ) , replacingEventId : ev . getId ( ) } ,
421
+ matrixClient ,
422
+ rerender ,
423
+ ) ;
424
+
425
+ expect ( container ) . toHaveTextContent ( ev2 . getContent ( ) [ "m.new_content" ] . body + "(edited)" ) ;
426
+
427
+ const links = [ "https://vector.im/" , "https://riot.im/" ] ;
428
+ const anchorNodes = container . querySelectorAll ( "a" ) ;
429
+ Array . from ( anchorNodes ) . forEach ( ( node , index ) => {
430
+ expect ( node ) . toHaveAttribute ( "href" , links [ index ] ) ;
431
+ } ) ;
411
432
} ) ;
412
- jest . spyOn ( ev , "replacingEventDate" ) . mockReturnValue ( new Date ( 1993 , 7 , 3 ) ) ;
413
- ev . makeReplaced ( ev2 ) ;
414
433
415
- getComponent (
416
- { mxEvent : ev , showUrlPreview : true , onHeightChanged : jest . fn ( ) , replacingEventId : ev . getId ( ) } ,
417
- matrixClient ,
418
- rerender ,
419
- ) ;
434
+ it ( "should listen to showUrlPreview change" , ( ) => {
435
+ const ev = mkRoomTextMessage ( "Visit https://matrix.org/" ) ;
420
436
421
- expect ( container ) . toHaveTextContent ( ev2 . getContent ( ) [ "m.new_content" ] . body + "(edited)" ) ;
437
+ const { container, rerender } = getComponent (
438
+ { mxEvent : ev , showUrlPreview : false , onHeightChanged : jest . fn ( ) } ,
439
+ matrixClient ,
440
+ ) ;
441
+ expect ( container . querySelector ( ".mx_LinkPreviewGroup" ) ) . toBeNull ( ) ;
422
442
423
- const links = [ "https://vector.im/" , "https://riot.im/" ] ;
424
- const anchorNodes = container . querySelectorAll ( "a" ) ;
425
- Array . from ( anchorNodes ) . forEach ( ( node , index ) => {
426
- expect ( node ) . toHaveAttribute ( "href" , links [ index ] ) ;
443
+ getComponent ( { mxEvent : ev , showUrlPreview : true , onHeightChanged : jest . fn ( ) } , matrixClient , rerender ) ;
444
+ expect ( container . querySelector ( ".mx_LinkPreviewGroup" ) ) . toBeTruthy ( ) ;
427
445
} ) ;
428
446
} ) ;
429
447
} ) ;
0 commit comments