@@ -216,6 +216,23 @@ describe('<MessageSimple />', () => {
216216 expect ( results ) . toHaveNoViolations ( ) ;
217217 } ) ;
218218
219+ it ( 'should render message with custom message-is-reply indicator' , async ( ) => {
220+ const message = generateAliceMessage ( { parent_id : 'x' , show_in_channel : true } ) ;
221+ const CustomMessageIsThreadReplyInChannelButtonIndicator = ( ) => (
222+ < div data-testid = 'custom-message-is-reply' > Is Reply</ div >
223+ ) ;
224+ const { container, getByTestId } = await renderMessageSimple ( {
225+ components : {
226+ MessageIsThreadReplyInChannelButtonIndicator :
227+ CustomMessageIsThreadReplyInChannelButtonIndicator ,
228+ } ,
229+ message,
230+ } ) ;
231+ expect ( getByTestId ( 'custom-message-is-reply' ) ) . toBeInTheDocument ( ) ;
232+ const results = await axe ( container ) ;
233+ expect ( results ) . toHaveNoViolations ( ) ;
234+ } ) ;
235+
219236 it ( 'should render message with custom options component when one is given' , async ( ) => {
220237 const message = generateAliceMessage ( { text : '' } ) ;
221238 const CustomOptions = ( ) => < div data-testid = 'custom-message-options' > Options</ div > ;
@@ -613,6 +630,69 @@ describe('<MessageSimple />', () => {
613630 expect ( results ) . toHaveNoViolations ( ) ;
614631 } ) ;
615632
633+ it ( 'should display is-message-reply button' , async ( ) => {
634+ const message = generateAliceMessage ( {
635+ parent_id : 'x' ,
636+ show_in_channel : true ,
637+ } ) ;
638+ const { container, getByTestId } = await renderMessageSimple ( { message } ) ;
639+ expect ( getByTestId ( 'message-is-thread-reply-button' ) ) . toBeInTheDocument ( ) ;
640+ const results = await axe ( container ) ;
641+ expect ( results ) . toHaveNoViolations ( ) ;
642+ } ) ;
643+
644+ it ( 'should open thread when is-message-reply button is clicked' , async ( ) => {
645+ const parentMessage = generateMessage ( { id : 'x' } ) ;
646+ const message = generateAliceMessage ( {
647+ parent_id : parentMessage . id ,
648+ show_in_channel : true ,
649+ } ) ;
650+ channel . state . messageSets [ 0 ] . messages . unshift ( parentMessage ) ;
651+ const { container, getByTestId } = await renderMessageSimple ( {
652+ message,
653+ } ) ;
654+ expect ( openThreadMock ) . not . toHaveBeenCalled ( ) ;
655+ fireEvent . click ( getByTestId ( 'message-is-thread-reply-button' ) ) ;
656+ expect ( openThreadMock ) . toHaveBeenCalledWith ( expect . any ( Object ) ) ;
657+ const results = await axe ( container ) ;
658+ expect ( results ) . toHaveNoViolations ( ) ;
659+ } ) ;
660+
661+ it ( 'should not open thread when is-message-reply button is clicked and parent message is not found' , async ( ) => {
662+ const parentMessage = generateMessage ( { id : 'x' } ) ;
663+ const message = generateAliceMessage ( {
664+ parent_id : parentMessage . id ,
665+ show_in_channel : true ,
666+ } ) ;
667+ const { container, getByTestId } = await renderMessageSimple ( {
668+ message,
669+ } ) ;
670+ expect ( openThreadMock ) . not . toHaveBeenCalled ( ) ;
671+ fireEvent . click ( getByTestId ( 'message-is-thread-reply-button' ) ) ;
672+ expect ( openThreadMock ) . not . toHaveBeenCalled ( ) ;
673+ const results = await axe ( container ) ;
674+ expect ( results ) . toHaveNoViolations ( ) ;
675+ } ) ;
676+
677+ it ( 'should query the parent if not found in local state' , async ( ) => {
678+ const parentMessage = generateMessage ( { id : 'x' } ) ;
679+ const message = generateAliceMessage ( {
680+ parent_id : parentMessage . id ,
681+ show_in_channel : true ,
682+ } ) ;
683+ const searchSpy = jest . spyOn ( client , 'search' ) ;
684+ const { container, getByTestId } = await renderMessageSimple ( {
685+ message,
686+ } ) ;
687+ fireEvent . click ( getByTestId ( 'message-is-thread-reply-button' ) ) ;
688+ expect ( searchSpy ) . toHaveBeenCalledWith (
689+ { cid : channel . cid } ,
690+ { id : parentMessage . id } ,
691+ ) ;
692+ const results = await axe ( container ) ;
693+ expect ( results ) . toHaveNoViolations ( ) ;
694+ } ) ;
695+
616696 it ( 'should open thread when reply count button is clicked' , async ( ) => {
617697 const message = generateAliceMessage ( {
618698 reply_count : 1 ,
0 commit comments