Skip to content

Commit b91a826

Browse files
committed
action_sheet test [nfc]: Share store as a late variable
These tests are all already relying on the detail that the setupToMessageActionSheet helper uses `eg.selfAccount` for the account. Better to encapsulate that detail, and have them rely on it giving the test cases a reference to the store directly.
1 parent f103128 commit b91a826

File tree

1 file changed

+2
-28
lines changed

1 file changed

+2
-28
lines changed

test/widgets/action_sheet_test.dart

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ GetMessagesResult _getMessagesResult(Message message) {
4444
);
4545
}
4646

47+
late PerAccountStore store;
4748
late FakeApiConnection connection;
4849

4950
/// Simulates loading a [MessageListPage] and long-pressing on [message].
@@ -54,7 +55,7 @@ Future<void> setupToMessageActionSheet(WidgetTester tester, {
5455
addTearDown(testBinding.reset);
5556

5657
await testBinding.globalStore.add(eg.selfAccount, eg.initialSnapshot());
57-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
58+
store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
5859
await store.addUser(eg.user(userId: message.senderId));
5960
if (message is StreamMessage) {
6061
final stream = eg.stream(streamId: message.streamId);
@@ -111,9 +112,7 @@ void main() {
111112
testWidgets('success', (tester) async {
112113
final message = eg.streamMessage();
113114
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
114-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
115115

116-
final connection = store.connection as FakeApiConnection;
117116
connection.prepare(json: {});
118117
await tapButton(tester);
119118
await tester.pump(Duration.zero);
@@ -131,9 +130,6 @@ void main() {
131130
testWidgets('request has an error', (tester) async {
132131
final message = eg.streamMessage();
133132
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
134-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
135-
136-
final connection = store.connection as FakeApiConnection;
137133

138134
connection.prepare(httpStatus: 400, json: {
139135
'code': 'BAD_REQUEST',
@@ -165,9 +161,7 @@ void main() {
165161
testWidgets('star success', (tester) async {
166162
final message = eg.streamMessage(flags: []);
167163
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
168-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
169164

170-
final connection = store.connection as FakeApiConnection;
171165
connection.prepare(json: {});
172166
await tapButton(tester);
173167
await tester.pump(Duration.zero);
@@ -185,9 +179,7 @@ void main() {
185179
testWidgets('unstar success', (tester) async {
186180
final message = eg.streamMessage(flags: [MessageFlag.starred]);
187181
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
188-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
189182

190-
final connection = store.connection as FakeApiConnection;
191183
connection.prepare(json: {});
192184
await tapButton(tester, starred: true);
193185
await tester.pump(Duration.zero);
@@ -205,11 +197,8 @@ void main() {
205197
testWidgets('star request has an error', (tester) async {
206198
final message = eg.streamMessage(flags: []);
207199
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
208-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
209200
final zulipLocalizations = GlobalLocalizations.zulipLocalizations;
210201

211-
final connection = store.connection as FakeApiConnection;
212-
213202
connection.prepare(httpStatus: 400, json: {
214203
'code': 'BAD_REQUEST',
215204
'msg': 'Invalid message(s)',
@@ -226,11 +215,8 @@ void main() {
226215
testWidgets('unstar request has an error', (tester) async {
227216
final message = eg.streamMessage(flags: [MessageFlag.starred]);
228217
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
229-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
230218
final zulipLocalizations = GlobalLocalizations.zulipLocalizations;
231219

232-
final connection = store.connection as FakeApiConnection;
233-
234220
connection.prepare(httpStatus: 400, json: {
235221
'code': 'BAD_REQUEST',
236222
'msg': 'Invalid message(s)',
@@ -297,7 +283,6 @@ void main() {
297283
testWidgets('in channel narrow', (tester) async {
298284
final message = eg.streamMessage();
299285
await setupToMessageActionSheet(tester, message: message, narrow: ChannelNarrow(message.streamId));
300-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
301286

302287
final composeBoxController = findComposeBoxController(tester)!;
303288
final contentController = composeBoxController.contentController;
@@ -321,7 +306,6 @@ void main() {
321306
testWidgets('in topic narrow', (tester) async {
322307
final message = eg.streamMessage();
323308
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
324-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
325309

326310
final composeBoxController = findComposeBoxController(tester)!;
327311
final contentController = composeBoxController.contentController;
@@ -340,7 +324,6 @@ void main() {
340324
final message = eg.dmMessage(from: eg.selfUser, to: [eg.otherUser]);
341325
await setupToMessageActionSheet(tester,
342326
message: message, narrow: DmNarrow.ofMessage(message, selfUserId: eg.selfUser.userId));
343-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
344327

345328
final composeBoxController = findComposeBoxController(tester)!;
346329
final contentController = composeBoxController.contentController;
@@ -358,7 +341,6 @@ void main() {
358341
testWidgets('request has an error', (tester) async {
359342
final message = eg.streamMessage();
360343
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
361-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
362344

363345
final composeBoxController = findComposeBoxController(tester)!;
364346
final contentController = composeBoxController.contentController;
@@ -454,7 +436,6 @@ void main() {
454436
// Get the action sheet fully deployed while the old narrow applies.
455437
await tester.pumpAndSettle();
456438

457-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
458439
final newStream = eg.stream();
459440
const newTopic = 'other topic';
460441
// This result isn't quite realistic for this request: it should get
@@ -517,7 +498,6 @@ void main() {
517498
testWidgets('success', (tester) async {
518499
final message = eg.streamMessage();
519500
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
520-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
521501

522502
prepareRawContentResponseSuccess(store, message: message, rawContent: 'Hello world');
523503
await tapCopyMessageTextButton(tester);
@@ -531,7 +511,6 @@ void main() {
531511

532512
final message = eg.streamMessage();
533513
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
534-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
535514

536515
// Make the request take a bit of time to complete…
537516
prepareRawContentResponseSuccess(store, message: message, rawContent: 'Hello world',
@@ -553,7 +532,6 @@ void main() {
553532
testWidgets('request has an error', (tester) async {
554533
final message = eg.streamMessage();
555534
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
556-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
557535

558536
prepareRawContentResponseError(store);
559537
await tapCopyMessageTextButton(tester);
@@ -585,7 +563,6 @@ void main() {
585563
final message = eg.streamMessage();
586564
final narrow = TopicNarrow.ofMessage(message);
587565
await setupToMessageActionSheet(tester, message: message, narrow: narrow);
588-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
589566

590567
await tapCopyMessageLinkButton(tester);
591568
await tester.pump(Duration.zero);
@@ -615,7 +592,6 @@ void main() {
615592
final mockSharePlus = setupMockSharePlus();
616593
final message = eg.streamMessage();
617594
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
618-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
619595

620596
prepareRawContentResponseSuccess(store, message: message, rawContent: 'Hello world');
621597
await tapShareButton(tester);
@@ -627,7 +603,6 @@ void main() {
627603
final mockSharePlus = setupMockSharePlus();
628604
final message = eg.streamMessage();
629605
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
630-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
631606

632607
prepareRawContentResponseSuccess(store, message: message, rawContent: 'Hello world');
633608
mockSharePlus.resultString = 'dev.fluttercommunity.plus/share/unavailable';
@@ -643,7 +618,6 @@ void main() {
643618
final mockSharePlus = setupMockSharePlus();
644619
final message = eg.streamMessage();
645620
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
646-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
647621

648622
prepareRawContentResponseError(store);
649623
await tapShareButton(tester);

0 commit comments

Comments
 (0)