@@ -923,6 +923,53 @@ void main() {
923923        await  tester.pump ();
924924        tester.widget (find.text ('new stream name' ));
925925      });
926+ 
927+       testWidgets ('navigates to TopicNarrow on tapping topic in ChannelNarrow' , (tester) async  {
928+         final  pushedRoutes =  < Route <void >> [];
929+         final  navObserver =  TestNavigatorObserver ()
930+           ..onPushed =  (route, prevRoute) =>  pushedRoutes.add (route);
931+         final  channel =  eg.stream ();
932+         await  setupMessageListPage (tester,
933+           narrow:  ChannelNarrow (channel.streamId),
934+           messages:  [eg.streamMessage (stream:  channel, topic:  'topic name' )],
935+           streams:  [channel],
936+           navObservers:  [navObserver]);
937+ 
938+         assert (pushedRoutes.length ==  1 );
939+         pushedRoutes.clear ();
940+ 
941+         connection.prepare (json:  eg.newestGetMessagesResult (
942+           foundOldest:  true , messages:  [message]).toJson ());
943+         await  tester.tap (find.descendant (
944+           of:  find.byType (StreamMessageRecipientHeader ),
945+           matching:  find.text ('topic name' )));
946+         await  tester.pumpAndSettle ();
947+         check (pushedRoutes).single
948+           .isA <WidgetRoute >()
949+           .page.isA <MessageListPage >()
950+           .initNarrow.equals (TopicNarrow (channel.streamId, TopicName ('topic name' )));
951+       });
952+ 
953+       testWidgets ('does not navigate on tapping topic in TopicNarrow' , (tester) async  {
954+         final  pushedRoutes =  < Route <void >> [];
955+         final  navObserver =  TestNavigatorObserver ()
956+           ..onPushed =  (route, prevRoute) =>  pushedRoutes.add (route);
957+         final  channel =  eg.stream ();
958+         await  setupMessageListPage (tester,
959+           narrow:  TopicNarrow (channel.streamId, TopicName ('topic name' )),
960+           navObservers:  [navObserver],
961+           streams:  [channel],
962+           messages:  [eg.streamMessage (stream:  channel, topic:  'topic name' )]);
963+ 
964+         assert (pushedRoutes.length ==  1 );
965+         pushedRoutes.clear ();
966+ 
967+         await  tester.tap (find.descendant (
968+           of:  find.byType (StreamMessageRecipientHeader ),
969+           matching:  find.text ('topic name' )));
970+         await  tester.pump ();
971+         check (pushedRoutes).isEmpty ();
972+       });
926973    });
927974
928975    group ('DmRecipientHeader' , () {
0 commit comments