@@ -6,6 +6,7 @@ import 'package:flutter_test/flutter_test.dart';
6
6
import 'package:zulip/api/model/events.dart' ;
7
7
import 'package:zulip/api/model/model.dart' ;
8
8
import 'package:zulip/model/narrow.dart' ;
9
+ import 'package:zulip/model/store.dart' ;
9
10
import 'package:zulip/widgets/content.dart' ;
10
11
import 'package:zulip/widgets/message_list.dart' ;
11
12
import 'package:zulip/widgets/sticky_header.dart' ;
@@ -19,39 +20,42 @@ import '../model/test_store.dart';
19
20
import '../test_images.dart' ;
20
21
import 'content_checks.dart' ;
21
22
22
- Future <void > setupMessageListPage (WidgetTester tester, {
23
- Narrow narrow = const AllMessagesNarrow (),
24
- }) async {
25
- addTearDown (TestZulipBinding .instance.reset);
26
- addTearDown (tester.view.resetPhysicalSize);
23
+ void main () {
24
+ TestZulipBinding .ensureInitialized ();
27
25
28
- tester.view.physicalSize = const Size (600 , 800 );
26
+ late PerAccountStore store;
27
+ late FakeApiConnection connection;
29
28
30
- await TestZulipBinding .instance.globalStore.add (eg.selfAccount, eg.initialSnapshot ());
31
- final store = await TestZulipBinding .instance.globalStore.perAccount (eg.selfAccount.id);
32
- final connection = store.connection as FakeApiConnection ;
29
+ Future <void > setupMessageListPage (WidgetTester tester, {
30
+ Narrow narrow = const AllMessagesNarrow (),
31
+ }) async {
32
+ addTearDown (TestZulipBinding .instance.reset);
33
+ addTearDown (tester.view.resetPhysicalSize);
33
34
34
- // prepare message list data
35
- store.addUser (eg.selfUser);
36
- final List <StreamMessage > messages = List .generate (10 , (index) {
37
- return eg.streamMessage (id: index, sender: eg.selfUser);
38
- });
39
- connection.prepare (json:
40
- newestResult (foundOldest: true , messages: messages).toJson ());
41
-
42
- await tester.pumpWidget (
43
- MaterialApp (
44
- home: GlobalStoreWidget (
45
- child: PerAccountStoreWidget (
46
- accountId: eg.selfAccount.id,
47
- child: MessageListPage (narrow: narrow)))));
48
-
49
- // global store, per-account store, and message list get loaded
50
- await tester.pumpAndSettle ();
51
- }
35
+ tester.view.physicalSize = const Size (600 , 800 );
52
36
53
- void main () {
54
- TestZulipBinding .ensureInitialized ();
37
+ await TestZulipBinding .instance.globalStore.add (eg.selfAccount, eg.initialSnapshot ());
38
+ store = await TestZulipBinding .instance.globalStore.perAccount (eg.selfAccount.id);
39
+ connection = store.connection as FakeApiConnection ;
40
+
41
+ // prepare message list data
42
+ store.addUser (eg.selfUser);
43
+ final List <StreamMessage > messages = List .generate (10 , (index) {
44
+ return eg.streamMessage (id: index, sender: eg.selfUser);
45
+ });
46
+ connection.prepare (json:
47
+ newestResult (foundOldest: true , messages: messages).toJson ());
48
+
49
+ await tester.pumpWidget (
50
+ MaterialApp (
51
+ home: GlobalStoreWidget (
52
+ child: PerAccountStoreWidget (
53
+ accountId: eg.selfAccount.id,
54
+ child: MessageListPage (narrow: narrow)))));
55
+
56
+ // global store, per-account store, and message list get loaded
57
+ await tester.pumpAndSettle ();
58
+ }
55
59
56
60
group ('ScrollToBottomButton interactions' , () {
57
61
ScrollController ? findMessageListScrollController (WidgetTester tester) {
0 commit comments