@@ -89,28 +89,36 @@ void main() {
8989 }
9090
9191 group ('MessageListPage' , () {
92- testWidgets ('composeBoxControllerOf finds compose box' , (tester) async {
93- final stream = eg.stream ();
94- await setupMessageListPage (tester, narrow: StreamNarrow (stream.streamId),
95- messages: [eg.streamMessage (stream: stream, content: "<p>a message</p>" )]);
96- final context = tester.element (find.text ("a message" ));
97- check (MessageListPage .composeBoxControllerOf (context)).isNotNull ();
98- });
99-
100- testWidgets ('composeBoxControllerOf null when no compose box' , (tester) async {
101- await setupMessageListPage (tester, narrow: const CombinedFeedNarrow (),
92+ testWidgets ('ancestorOf finds page state from message' , (tester) async {
93+ await setupMessageListPage (tester,
10294 messages: [eg.streamMessage (content: "<p>a message</p>" )]);
103- final context = tester.element (find.text ("a message" ));
104- check (MessageListPage .composeBoxControllerOf (context)).isNull ();
95+ final expectedState = tester.state <State >(find.byType (MessageListPage ));
96+ check (MessageListPage .ancestorOf (tester.element (find.text ("a message" ))))
97+ .identicalTo (expectedState as MessageListPageState );
10598 });
10699
107- testWidgets ('composeBoxControllerOf throws when not a descendant of MessageListPage' , (tester) async {
100+ testWidgets ('ancestorOf throws when not a descendant of MessageListPage' , (tester) async {
108101 await setupMessageListPage (tester,
109102 messages: [eg.streamMessage (content: "<p>a message</p>" )]);
110103 final element = tester.element (find.byType (PerAccountStoreWidget ));
111- check (() => MessageListPage .composeBoxControllerOf (element))
104+ check (() => MessageListPage .ancestorOf (element))
112105 .throws <void >();
113106 });
107+
108+ testWidgets ('composeBoxController finds compose box' , (tester) async {
109+ final stream = eg.stream ();
110+ await setupMessageListPage (tester, narrow: StreamNarrow (stream.streamId),
111+ messages: [eg.streamMessage (stream: stream, content: "<p>a message</p>" )]);
112+ final state = MessageListPage .ancestorOf (tester.element (find.text ("a message" )));
113+ check (state.composeBoxController).isNotNull ();
114+ });
115+
116+ testWidgets ('composeBoxController null when no compose box' , (tester) async {
117+ await setupMessageListPage (tester, narrow: const CombinedFeedNarrow (),
118+ messages: [eg.streamMessage (content: "<p>a message</p>" )]);
119+ final state = MessageListPage .ancestorOf (tester.element (find.text ("a message" )));
120+ check (state.composeBoxController).isNull ();
121+ });
114122 });
115123
116124 group ('presents message content appropriately' , () {
0 commit comments