@@ -89,28 +89,36 @@ void main() {
89
89
}
90
90
91
91
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,
102
94
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 );
105
98
});
106
99
107
- testWidgets ('composeBoxControllerOf throws when not a descendant of MessageListPage' , (tester) async {
100
+ testWidgets ('ancestorOf throws when not a descendant of MessageListPage' , (tester) async {
108
101
await setupMessageListPage (tester,
109
102
messages: [eg.streamMessage (content: "<p>a message</p>" )]);
110
103
final element = tester.element (find.byType (PerAccountStoreWidget ));
111
- check (() => MessageListPage .composeBoxControllerOf (element))
104
+ check (() => MessageListPage .ancestorOf (element))
112
105
.throws <void >();
113
106
});
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
+ });
114
122
});
115
123
116
124
group ('presents message content appropriately' , () {
0 commit comments