Skip to content

Commit 0063aca

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 81545ee commit 0063aca

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
@@ -35,6 +35,7 @@ import 'compose_box_checks.dart';
3535
import 'dialog_checks.dart';
3636
import 'test_app.dart';
3737

38+
late PerAccountStore store;
3839
late FakeApiConnection connection;
3940

4041
/// Simulates loading a [MessageListPage] and long-pressing on [message].
@@ -45,7 +46,7 @@ Future<void> setupToMessageActionSheet(WidgetTester tester, {
4546
addTearDown(testBinding.reset);
4647

4748
await testBinding.globalStore.add(eg.selfAccount, eg.initialSnapshot());
48-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
49+
store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
4950
await store.addUser(eg.user(userId: message.senderId));
5051
if (message is StreamMessage) {
5152
final stream = eg.stream(streamId: message.streamId);
@@ -103,9 +104,7 @@ void main() {
103104
testWidgets('success', (tester) async {
104105
final message = eg.streamMessage();
105106
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
106-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
107107

108-
final connection = store.connection as FakeApiConnection;
109108
connection.prepare(json: {});
110109
await tapButton(tester);
111110
await tester.pump(Duration.zero);
@@ -123,9 +122,6 @@ void main() {
123122
testWidgets('request has an error', (tester) async {
124123
final message = eg.streamMessage();
125124
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
126-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
127-
128-
final connection = store.connection as FakeApiConnection;
129125

130126
connection.prepare(httpStatus: 400, json: {
131127
'code': 'BAD_REQUEST',
@@ -157,9 +153,7 @@ void main() {
157153
testWidgets('star success', (tester) async {
158154
final message = eg.streamMessage(flags: []);
159155
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
160-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
161156

162-
final connection = store.connection as FakeApiConnection;
163157
connection.prepare(json: {});
164158
await tapButton(tester);
165159
await tester.pump(Duration.zero);
@@ -177,9 +171,7 @@ void main() {
177171
testWidgets('unstar success', (tester) async {
178172
final message = eg.streamMessage(flags: [MessageFlag.starred]);
179173
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
180-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
181174

182-
final connection = store.connection as FakeApiConnection;
183175
connection.prepare(json: {});
184176
await tapButton(tester, starred: true);
185177
await tester.pump(Duration.zero);
@@ -197,11 +189,8 @@ void main() {
197189
testWidgets('star request has an error', (tester) async {
198190
final message = eg.streamMessage(flags: []);
199191
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
200-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
201192
final zulipLocalizations = GlobalLocalizations.zulipLocalizations;
202193

203-
final connection = store.connection as FakeApiConnection;
204-
205194
connection.prepare(httpStatus: 400, json: {
206195
'code': 'BAD_REQUEST',
207196
'msg': 'Invalid message(s)',
@@ -218,11 +207,8 @@ void main() {
218207
testWidgets('unstar request has an error', (tester) async {
219208
final message = eg.streamMessage(flags: [MessageFlag.starred]);
220209
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
221-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
222210
final zulipLocalizations = GlobalLocalizations.zulipLocalizations;
223211

224-
final connection = store.connection as FakeApiConnection;
225-
226212
connection.prepare(httpStatus: 400, json: {
227213
'code': 'BAD_REQUEST',
228214
'msg': 'Invalid message(s)',
@@ -291,7 +277,6 @@ void main() {
291277
testWidgets('in channel narrow', (tester) async {
292278
final message = eg.streamMessage();
293279
await setupToMessageActionSheet(tester, message: message, narrow: ChannelNarrow(message.streamId));
294-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
295280

296281
final composeBoxController = findComposeBoxController(tester)!;
297282
final contentController = composeBoxController.contentController;
@@ -315,7 +300,6 @@ void main() {
315300
testWidgets('in topic narrow', (tester) async {
316301
final message = eg.streamMessage();
317302
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
318-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
319303

320304
final composeBoxController = findComposeBoxController(tester)!;
321305
final contentController = composeBoxController.contentController;
@@ -334,7 +318,6 @@ void main() {
334318
final message = eg.dmMessage(from: eg.selfUser, to: [eg.otherUser]);
335319
await setupToMessageActionSheet(tester,
336320
message: message, narrow: DmNarrow.ofMessage(message, selfUserId: eg.selfUser.userId));
337-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
338321

339322
final composeBoxController = findComposeBoxController(tester)!;
340323
final contentController = composeBoxController.contentController;
@@ -352,7 +335,6 @@ void main() {
352335
testWidgets('request has an error', (tester) async {
353336
final message = eg.streamMessage();
354337
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
355-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
356338

357339
final composeBoxController = findComposeBoxController(tester)!;
358340
final contentController = composeBoxController.contentController;
@@ -452,7 +434,6 @@ void main() {
452434
// by giving the code maximum opportunity to latch onto the old topic.)
453435
await tester.pumpAndSettle();
454436

455-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
456437
final newStream = eg.stream();
457438
const newTopic = 'other topic';
458439
// This result isn't quite realistic for this request: it should get
@@ -516,7 +497,6 @@ void main() {
516497
testWidgets('success', (tester) async {
517498
final message = eg.streamMessage();
518499
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
519-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
520500

521501
prepareRawContentResponseSuccess(store, message: message, rawContent: 'Hello world');
522502
await tapCopyMessageTextButton(tester);
@@ -530,7 +510,6 @@ void main() {
530510

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

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

557535
prepareRawContentResponseError(store);
558536
await tapCopyMessageTextButton(tester);
@@ -584,7 +562,6 @@ void main() {
584562
final message = eg.streamMessage();
585563
final narrow = TopicNarrow.ofMessage(message);
586564
await setupToMessageActionSheet(tester, message: message, narrow: narrow);
587-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
588565

589566
await tapCopyMessageLinkButton(tester);
590567
await tester.pump(Duration.zero);
@@ -614,7 +591,6 @@ void main() {
614591
final mockSharePlus = setupMockSharePlus();
615592
final message = eg.streamMessage();
616593
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
617-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
618594

619595
prepareRawContentResponseSuccess(store, message: message, rawContent: 'Hello world');
620596
await tapShareButton(tester);
@@ -626,7 +602,6 @@ void main() {
626602
final mockSharePlus = setupMockSharePlus();
627603
final message = eg.streamMessage();
628604
await setupToMessageActionSheet(tester, message: message, narrow: TopicNarrow.ofMessage(message));
629-
final store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
630605

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

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

0 commit comments

Comments
 (0)