@@ -4,15 +4,17 @@ import { useMessageBody } from './useMessageBody';
44
55const mockParseMessageTextToAstMarkdown = jest . fn ( ) ;
66
7+ let mockAutoTranslateOptions = {
8+ showAutoTranslate : ( ) => false ,
9+ autoTranslateLanguage : '' ,
10+ } ;
11+
712jest . mock ( './useAutoLinkDomains' , ( ) => ( {
813 useAutoLinkDomains : ( ) => [ ] ,
914} ) ) ;
1015
1116jest . mock ( '../../../../components/message/list/MessageListContext' , ( ) => ( {
12- useMessageListAutoTranslate : ( ) => ( {
13- showAutoTranslate : ( ) => false ,
14- autoTranslateLanguage : '' ,
15- } ) ,
17+ useMessageListAutoTranslate : ( ) => mockAutoTranslateOptions ,
1618} ) ) ;
1719
1820jest . mock ( '../../../../lib/parseMessageTextToAstMarkdown' , ( ) => ( {
@@ -32,13 +34,18 @@ describe('useMessageBody', () => {
3234 mockParseMessageTextToAstMarkdown . mockClear ( ) ;
3335 } ) ;
3436
35- it ( 'should return raw msg and skips parsing when msg exceeds maxMarkdownParseLength' , ( ) => {
37+ it ( 'should return PARAGRAPH node with translated text when msg exceeds maxMarkdownParseLength' , ( ) => {
3638 const longMsg = 'a' . repeat ( 101 ) ;
3739 const message = { ...baseMessage , msg : longMsg , md : [ { type : 'PARAGRAPH' , value : [ ] } ] } ;
3840
3941 const { result } = renderHook ( ( ) => useMessageBody ( message as any , 100 ) ) ;
4042
41- expect ( result . current ) . toBe ( longMsg ) ;
43+ expect ( result . current ) . toEqual ( [
44+ {
45+ type : 'PARAGRAPH' ,
46+ value : [ { type : 'PLAIN_TEXT' , value : longMsg } ] ,
47+ } ,
48+ ] ) ;
4249 expect ( mockParseMessageTextToAstMarkdown ) . not . toHaveBeenCalled ( ) ;
4350 } ) ;
4451
@@ -61,4 +68,30 @@ describe('useMessageBody', () => {
6168 expect ( mockParseMessageTextToAstMarkdown ) . not . toHaveBeenCalled ( ) ;
6269 expect ( result . current ) . toBe ( 'Hello world' ) ;
6370 } ) ;
71+
72+ it ( 'should return PARAGRAPH node with translated text when auto-translate is active and msg exceeds limit' , ( ) => {
73+ const longMsg = 'a' . repeat ( 101 ) ;
74+ const translatedText = 'long translated text' ;
75+
76+ mockAutoTranslateOptions = {
77+ showAutoTranslate : ( ) => true ,
78+ autoTranslateLanguage : 'en' ,
79+ } ;
80+
81+ const message = {
82+ ...baseMessage ,
83+ msg : longMsg ,
84+ translations : { en : translatedText } ,
85+ } ;
86+
87+ const { result } = renderHook ( ( ) => useMessageBody ( message as any , 100 ) ) ;
88+
89+ expect ( result . current ) . toEqual ( [
90+ {
91+ type : 'PARAGRAPH' ,
92+ value : [ { type : 'PLAIN_TEXT' , value : translatedText } ] ,
93+ } ,
94+ ] ) ;
95+ expect ( mockParseMessageTextToAstMarkdown ) . not . toHaveBeenCalled ( ) ;
96+ } ) ;
6497} ) ;
0 commit comments