Skip to content

Commit 818bc6d

Browse files
committed
example_data [nfc]: Add messageEvent
MessageEvent constructor calls are generally quite short, and there are no boring required fields other than an integer id. However, as we add localMessageId to the event, it would be expected to have a boring value most of the time, so prepare for that. A neat side-effect is that we can cut some imports from lib/api/model/. (Some places that use non-zero event IDs now use 0, but we don't care much about this value anyway.)
1 parent b2dc94c commit 818bc6d

11 files changed

+58
-63
lines changed

test/example_data.dart

+3
Original file line numberDiff line numberDiff line change
@@ -620,6 +620,9 @@ UserTopicEvent userTopicEvent(
620620
);
621621
}
622622

623+
MessageEvent messageEvent(Message message) =>
624+
MessageEvent(id: 0, message: message);
625+
623626
DeleteMessageEvent deleteMessageEvent(List<StreamMessage> messages) {
624627
assert(messages.isNotEmpty);
625628
final streamId = messages.first.streamId;

test/model/message_list_test.dart

+29-34
Original file line numberDiff line numberDiff line change
@@ -367,8 +367,7 @@ void main() {
367367
List.generate(30, (i) => eg.streamMessage(stream: stream)));
368368

369369
check(model).messages.length.equals(30);
370-
await store.handleEvent(MessageEvent(id: 0,
371-
message: eg.streamMessage(stream: stream)));
370+
await store.handleEvent(eg.messageEvent(eg.streamMessage(stream: stream)));
372371
checkNotifiedOnce();
373372
check(model).messages.length.equals(31);
374373
});
@@ -381,17 +380,15 @@ void main() {
381380

382381
check(model).messages.length.equals(30);
383382
final otherStream = eg.stream();
384-
await store.handleEvent(MessageEvent(id: 0,
385-
message: eg.streamMessage(stream: otherStream)));
383+
await store.handleEvent(eg.messageEvent(eg.streamMessage(stream: otherStream)));
386384
checkNotNotified();
387385
check(model).messages.length.equals(30);
388386
});
389387

390388
test('MessageEvent, before fetch', () async {
391389
final stream = eg.stream();
392390
await prepare(narrow: ChannelNarrow(stream.streamId));
393-
await store.handleEvent(MessageEvent(id: 0,
394-
message: eg.streamMessage(stream: stream)));
391+
await store.handleEvent(eg.messageEvent(eg.streamMessage(stream: stream)));
395392
checkNotNotified();
396393
check(model).fetched.isFalse();
397394
});
@@ -1314,7 +1311,7 @@ void main() {
13141311
}
13151312

13161313
final message = eg.streamMessage(stream: stream, topic: 'hello');
1317-
await store.handleEvent(MessageEvent(id: 0, message: message));
1314+
await store.handleEvent(eg.messageEvent(message));
13181315

13191316
await store.handleEvent(
13201317
eg.reactionEvent(eg.unicodeEmojiReaction, ReactionOp.add, message.id));
@@ -1396,8 +1393,7 @@ void main() {
13961393
await prepare(narrow: ChannelNarrow(stream.streamId));
13971394
await prepareMessages(foundOldest: true, messages:
13981395
List.generate(30, (i) => eg.streamMessage(stream: stream)));
1399-
await store.handleEvent(MessageEvent(id: 0,
1400-
message: eg.streamMessage(stream: stream)));
1396+
await store.handleEvent(eg.messageEvent(eg.streamMessage(stream: stream)));
14011397
checkNotifiedOnce();
14021398
check(model).messages.length.equals(31);
14031399

@@ -1454,28 +1450,28 @@ void main() {
14541450
.deepEquals(expected..insertAll(0, [101, 103, 105]));
14551451

14561452
// … and on MessageEvent.
1457-
await store.handleEvent(MessageEvent(id: 0,
1458-
message: eg.streamMessage(id: 301, stream: stream1, topic: 'A')));
1453+
await store.handleEvent(eg.messageEvent(
1454+
eg.streamMessage(id: 301, stream: stream1, topic: 'A')));
14591455
checkNotifiedOnce();
14601456
check(model.messages.map((m) => m.id)).deepEquals(expected..add(301));
14611457

1462-
await store.handleEvent(MessageEvent(id: 0,
1463-
message: eg.streamMessage(id: 302, stream: stream1, topic: 'B')));
1458+
await store.handleEvent(eg.messageEvent(
1459+
eg.streamMessage(id: 302, stream: stream1, topic: 'B')));
14641460
checkNotNotified();
14651461
check(model.messages.map((m) => m.id)).deepEquals(expected);
14661462

1467-
await store.handleEvent(MessageEvent(id: 0,
1468-
message: eg.streamMessage(id: 303, stream: stream2, topic: 'C')));
1463+
await store.handleEvent(eg.messageEvent(
1464+
eg.streamMessage(id: 303, stream: stream2, topic: 'C')));
14691465
checkNotifiedOnce();
14701466
check(model.messages.map((m) => m.id)).deepEquals(expected..add(303));
14711467

1472-
await store.handleEvent(MessageEvent(id: 0,
1473-
message: eg.streamMessage(id: 304, stream: stream2, topic: 'D')));
1468+
await store.handleEvent(eg.messageEvent(
1469+
eg.streamMessage(id: 304, stream: stream2, topic: 'D')));
14741470
checkNotNotified();
14751471
check(model.messages.map((m) => m.id)).deepEquals(expected);
14761472

1477-
await store.handleEvent(MessageEvent(id: 0,
1478-
message: eg.dmMessage(id: 305, from: eg.otherUser, to: [eg.selfUser])));
1473+
await store.handleEvent(eg.messageEvent(
1474+
eg.dmMessage(id: 305, from: eg.otherUser, to: [eg.selfUser])));
14791475
checkNotifiedOnce();
14801476
check(model.messages.map((m) => m.id)).deepEquals(expected..add(305));
14811477
});
@@ -1511,18 +1507,18 @@ void main() {
15111507
.deepEquals(expected..insertAll(0, [101, 102]));
15121508

15131509
// … and on MessageEvent.
1514-
await store.handleEvent(MessageEvent(id: 0,
1515-
message: eg.streamMessage(id: 301, stream: stream, topic: 'A')));
1510+
await store.handleEvent(eg.messageEvent(
1511+
eg.streamMessage(id: 301, stream: stream, topic: 'A')));
15161512
checkNotifiedOnce();
15171513
check(model.messages.map((m) => m.id)).deepEquals(expected..add(301));
15181514

1519-
await store.handleEvent(MessageEvent(id: 0,
1520-
message: eg.streamMessage(id: 302, stream: stream, topic: 'B')));
1515+
await store.handleEvent(eg.messageEvent(
1516+
eg.streamMessage(id: 302, stream: stream, topic: 'B')));
15211517
checkNotifiedOnce();
15221518
check(model.messages.map((m) => m.id)).deepEquals(expected..add(302));
15231519

1524-
await store.handleEvent(MessageEvent(id: 0,
1525-
message: eg.streamMessage(id: 303, stream: stream, topic: 'C')));
1520+
await store.handleEvent(eg.messageEvent(
1521+
eg.streamMessage(id: 303, stream: stream, topic: 'C')));
15261522
checkNotNotified();
15271523
check(model.messages.map((m) => m.id)).deepEquals(expected);
15281524
});
@@ -1553,8 +1549,8 @@ void main() {
15531549
.deepEquals(expected..insertAll(0, [101]));
15541550

15551551
// … and on MessageEvent.
1556-
await store.handleEvent(MessageEvent(id: 0,
1557-
message: eg.streamMessage(id: 301, stream: stream, topic: 'A')));
1552+
await store.handleEvent(eg.messageEvent(
1553+
eg.streamMessage(id: 301, stream: stream, topic: 'A')));
15581554
checkNotifiedOnce();
15591555
check(model.messages.map((m) => m.id)).deepEquals(expected..add(301));
15601556
});
@@ -1593,7 +1589,7 @@ void main() {
15931589
// … and on MessageEvent.
15941590
final messages = getMessages(301);
15951591
for (var i = 0; i < 3; i += 1) {
1596-
await store.handleEvent(MessageEvent(id: 0, message: messages[i]));
1592+
await store.handleEvent(eg.messageEvent(messages[i]));
15971593
checkNotifiedOnce();
15981594
check(model.messages.map((m) => m.id)).deepEquals(expected..add(301 + i));
15991595
}
@@ -1631,7 +1627,7 @@ void main() {
16311627
// … and on MessageEvent.
16321628
final messages = getMessages(301);
16331629
for (var i = 0; i < 2; i += 1) {
1634-
await store.handleEvent(MessageEvent(id: 0, message: messages[i]));
1630+
await store.handleEvent(eg.messageEvent(messages[i]));
16351631
checkNotifiedOnce();
16361632
check(model.messages.map((m) => m.id)).deepEquals(expected..add(301 + i));
16371633
}
@@ -1644,8 +1640,7 @@ void main() {
16441640
await prepare(narrow: ChannelNarrow(stream.streamId));
16451641
await prepareMessages(foundOldest: true, messages: []);
16461642

1647-
await store.handleEvent(MessageEvent(id: 0,
1648-
message: eg.streamMessage(stream: stream)));
1643+
await store.handleEvent(eg.messageEvent(eg.streamMessage(stream: stream)));
16491644
// Each [checkNotifiedOnce] call ensures there's been a [checkInvariants]
16501645
// call, where the [ContentNode] gets checked. The additional checks to
16511646
// make this test explicit.
@@ -1659,7 +1654,7 @@ void main() {
16591654
await prepare(narrow: ChannelNarrow(stream.streamId));
16601655
await prepareMessages(foundOldest: true, messages: []);
16611656

1662-
await store.handleEvent(MessageEvent(id: 0, message: eg.streamMessage(
1657+
await store.handleEvent(eg.messageEvent(eg.streamMessage(
16631658
stream: stream,
16641659
sender: eg.selfUser,
16651660
submessages: [
@@ -1723,11 +1718,11 @@ void main() {
17231718
checkNotified(count: 2);
17241719

17251720
// Then test MessageEvent, where a new header is needed…
1726-
await store.handleEvent(MessageEvent(id: 0, message: streamMessage(13)));
1721+
await store.handleEvent(eg.messageEvent(streamMessage(13)));
17271722
checkNotifiedOnce();
17281723

17291724
// … and where it's not.
1730-
await store.handleEvent(MessageEvent(id: 0, message: streamMessage(14)));
1725+
await store.handleEvent(eg.messageEvent(streamMessage(14)));
17311726
checkNotifiedOnce();
17321727

17331728
// Then test UpdateMessageEvent edits, where a header is and remains needed…

test/model/message_test.dart

+6-6
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ void main() {
7272

7373
Future<void> addMessages(Iterable<Message> messages) async {
7474
for (final m in messages) {
75-
await store.handleEvent(MessageEvent(id: 0, message: m));
75+
await store.handleEvent(eg.messageEvent(m));
7676
}
7777
checkNotified(count: messageList.fetched ? messages.length : 0);
7878
}
@@ -131,7 +131,7 @@ void main() {
131131
check(store.messages).isEmpty();
132132

133133
final newMessage = eg.streamMessage();
134-
await store.handleEvent(MessageEvent(id: 1, message: newMessage));
134+
await store.handleEvent(eg.messageEvent(newMessage));
135135
check(store.messages).deepEquals({
136136
newMessage.id: newMessage,
137137
});
@@ -150,7 +150,7 @@ void main() {
150150
});
151151

152152
final newMessage = eg.streamMessage();
153-
await store.handleEvent(MessageEvent(id: 1, message: newMessage));
153+
await store.handleEvent(eg.messageEvent(newMessage));
154154
check(store.messages).deepEquals({
155155
for (final m in messages) m.id: m,
156156
newMessage.id: newMessage,
@@ -164,7 +164,7 @@ void main() {
164164
check(store.messages).deepEquals({1: message});
165165

166166
final newMessage = eg.streamMessage(id: 1, content: '<p>bar</p>');
167-
await store.handleEvent(MessageEvent(id: 1, message: newMessage));
167+
await store.handleEvent(eg.messageEvent(newMessage));
168168
check(store.messages).deepEquals({1: newMessage});
169169
});
170170
});
@@ -861,7 +861,7 @@ void main() {
861861
]);
862862

863863
await prepare();
864-
await store.handleEvent(MessageEvent(id: 0, message: message));
864+
await store.handleEvent(eg.messageEvent(message));
865865
}
866866

867867
test('smoke', () async {
@@ -932,7 +932,7 @@ void main() {
932932
),
933933
]);
934934
await prepare();
935-
await store.handleEvent(MessageEvent(id: 0, message: message));
935+
await store.handleEvent(eg.messageEvent(message));
936936
check(store.messages[message.id]).isNotNull().poll.isNull();
937937
});
938938
});

test/model/recent_dm_conversations_test.dart

+8-9
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import 'package:checks/checks.dart';
22
import 'package:test/scaffolding.dart';
3-
import 'package:zulip/api/model/events.dart';
43
import 'package:zulip/api/model/initial_snapshot.dart';
54
import 'package:zulip/model/narrow.dart';
65
import 'package:zulip/model/recent_dm_conversations.dart';
@@ -66,7 +65,7 @@ void main() {
6665
final expected = setupView();
6766
check(setupView()
6867
..addListener(() { listenersNotified = true; })
69-
..handleMessageEvent(MessageEvent(id: 1, message: eg.streamMessage()))
68+
..handleMessageEvent(eg.messageEvent(eg.streamMessage()))
7069
) ..map.deepEquals(expected.map)
7170
..sorted.deepEquals(expected.sorted)
7271
..latestMessagesByRecipient.deepEquals(expected.latestMessagesByRecipient);
@@ -78,7 +77,7 @@ void main() {
7877
final message = eg.dmMessage(id: 300, from: eg.selfUser, to: [eg.user(userId: 2)]);
7978
check(setupView()
8079
..addListener(() { listenersNotified = true; })
81-
..handleMessageEvent(MessageEvent(id: 1, message: message))
80+
..handleMessageEvent(eg.messageEvent(message))
8281
) ..map.deepEquals({
8382
key([2]): 300,
8483
key([1]): 200,
@@ -94,7 +93,7 @@ void main() {
9493
final message = eg.dmMessage(id: 150, from: eg.selfUser, to: [eg.user(userId: 2)]);
9594
check(setupView()
9695
..addListener(() { listenersNotified = true; })
97-
..handleMessageEvent(MessageEvent(id: 1, message: message))
96+
..handleMessageEvent(eg.messageEvent(message))
9897
) ..map.deepEquals({
9998
key([1]): 200,
10099
key([2]): 150,
@@ -111,7 +110,7 @@ void main() {
111110
to: [eg.user(userId: 1), eg.user(userId: 2)]);
112111
check(setupView()
113112
..addListener(() { listenersNotified = true; })
114-
..handleMessageEvent(MessageEvent(id: 1, message: message))
113+
..handleMessageEvent(eg.messageEvent(message))
115114
) ..map.deepEquals({
116115
key([1, 2]): 300,
117116
key([1]): 200,
@@ -126,7 +125,7 @@ void main() {
126125
final message = eg.dmMessage(id: 300, from: eg.selfUser, to: [eg.user(userId: 1)]);
127126
check(setupView()
128127
..addListener(() { listenersNotified = true; })
129-
..handleMessageEvent(MessageEvent(id: 1, message: message))
128+
..handleMessageEvent(eg.messageEvent(message))
130129
) ..map.deepEquals({
131130
key([1]): 300,
132131
key([1, 2]): 100,
@@ -143,7 +142,7 @@ void main() {
143142
final expected = setupView();
144143
check(setupView()
145144
// ..addListener(() { listenersNotified = true; })
146-
..handleMessageEvent(MessageEvent(id: 1, message: message))
145+
..handleMessageEvent(eg.messageEvent(message))
147146
) ..map.deepEquals(expected.map)
148147
..sorted.deepEquals(expected.sorted)
149148
..latestMessagesByRecipient.deepEquals(expected.latestMessagesByRecipient);
@@ -157,7 +156,7 @@ void main() {
157156
to: [eg.user(userId: 1), eg.user(userId: 3)]);
158157
check(setupView()
159158
..addListener(() { listenersNotified = true; })
160-
..handleMessageEvent(MessageEvent(id: 1, message: message))
159+
..handleMessageEvent(eg.messageEvent(message))
161160
) ..map.deepEquals({
162161
key([1, 3]): 300,
163162
key([1]): 200,
@@ -174,7 +173,7 @@ void main() {
174173
to: [eg.user(userId: 1), eg.user(userId: 3)]);
175174
check(setupView()
176175
..addListener(() { listenersNotified = true; })
177-
..handleMessageEvent(MessageEvent(id: 1, message: message))
176+
..handleMessageEvent(eg.messageEvent(message))
178177
) ..map.deepEquals({
179178
key([1]): 200,
180179
key([1, 3]): 150,

test/model/test_store.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ extension PerAccountStoreTestExtension on PerAccountStore {
288288
}
289289

290290
Future<void> addMessage(Message message) async {
291-
await handleEvent(MessageEvent(id: 1, message: message));
291+
await handleEvent(eg.messageEvent(message));
292292
}
293293

294294
Future<void> addMessages(Iterable<Message> messages) async {

test/model/unreads_test.dart

+5-5
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ void main() {
4949

5050
void fillWithMessages(Iterable<Message> messages) {
5151
for (final message in messages) {
52-
model.handleMessageEvent(MessageEvent(id: 0, message: message));
52+
model.handleMessageEvent(eg.messageEvent(message));
5353
}
5454
notifiedCount = 0;
5555
}
@@ -318,7 +318,7 @@ void main() {
318318
final message = isStream
319319
? eg.streamMessage(flags: flags)
320320
: eg.dmMessage(from: eg.otherUser, to: [eg.selfUser], flags: flags);
321-
model.handleMessageEvent(MessageEvent(id: 0, message: message));
321+
model.handleMessageEvent(eg.messageEvent(message));
322322
if (isUnread) {
323323
checkNotifiedOnce();
324324
}
@@ -346,7 +346,7 @@ void main() {
346346

347347
prepare();
348348
fillWithMessages([oldMessage]);
349-
model.handleMessageEvent(MessageEvent(id: 0, message: newMessage));
349+
model.handleMessageEvent(eg.messageEvent(newMessage));
350350
checkNotifiedOnce();
351351
checkMatchesMessages([oldMessage, newMessage]);
352352
});
@@ -369,7 +369,7 @@ void main() {
369369
final message = eg.dmMessage(from: from, to: to, flags: []);
370370

371371
prepare();
372-
model.handleMessageEvent(MessageEvent(id: 0, message: message));
372+
model.handleMessageEvent(eg.messageEvent(message));
373373
checkNotifiedOnce();
374374
checkMatchesMessages([message]);
375375
});
@@ -387,7 +387,7 @@ void main() {
387387
test('existing in $oldDesc narrow; new in ${oldNarrow == newNarrow ? 'same narrow' : 'different narrow ($newDesc)'}', () {
388388
prepare();
389389
fillWithMessages([oldMessage]);
390-
model.handleMessageEvent(MessageEvent(id: 0, message: newMessage));
390+
model.handleMessageEvent(eg.messageEvent(newMessage));
391391
checkNotifiedOnce();
392392
checkMatchesMessages([oldMessage, newMessage]);
393393
});

test/widgets/home_test.dart

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import 'package:checks/checks.dart';
22
import 'package:flutter/material.dart';
33
import 'package:flutter_checks/flutter_checks.dart';
44
import 'package:flutter_test/flutter_test.dart';
5-
import 'package:zulip/api/model/events.dart';
65
import 'package:zulip/model/actions.dart';
76
import 'package:zulip/model/narrow.dart';
87
import 'package:zulip/model/store.dart';
@@ -72,8 +71,8 @@ void main () {
7271
testWidgets('preserve states when switching between views', (tester) async {
7372
await prepare(tester);
7473
await store.addUser(eg.otherUser);
75-
await store.handleEvent(MessageEvent(
76-
id: 0, message: eg.dmMessage(from: eg.otherUser, to: [eg.selfUser])));
74+
await store.handleEvent(eg.messageEvent(
75+
eg.dmMessage(from: eg.otherUser, to: [eg.selfUser])));
7776
await tester.pump();
7877

7978
check(find.byIcon(ZulipIcons.arrow_down)).findsExactly(2);

test/widgets/inbox_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void main() {
7070

7171
for (final message in unreadMessages) {
7272
assert(!message.flags.contains(MessageFlag.read));
73-
await store.handleEvent(MessageEvent(id: 1, message: message));
73+
await store.handleEvent(eg.messageEvent(message));
7474
}
7575

7676
await tester.pumpWidget(TestZulipApp(

0 commit comments

Comments
 (0)