@@ -58,7 +58,9 @@ void main() {
58
58
group ('RecentSenders.handleMessages' , () {
59
59
late RecentSenders model;
60
60
final stream1 = eg.stream (streamId: 1 );
61
+ final stream2 = eg.stream (streamId: 2 );
61
62
final user10 = eg.user (userId: 10 );
63
+ final user20 = eg.user (userId: 20 );
62
64
63
65
void setupModel (List <Message > messages) {
64
66
model = RecentSenders ();
@@ -104,75 +106,39 @@ void main() {
104
106
});
105
107
106
108
test ('batch with both DM and stream messages -> ignores DM, processes stream messages' , () {
107
- checkHandleMessages ([
108
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 100 ),
109
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 200 ),
110
- ], [
111
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 300 ),
112
- eg.dmMessage (from: eg.otherUser, to: [eg.selfUser], id: 400 ),
113
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 500 ),
109
+ checkHandleMessages ([], [
110
+ eg.streamMessage (stream: stream1, topic: 'a' , sender: user10),
111
+ eg.dmMessage (from: eg.otherUser, to: [eg.selfUser]),
112
+ eg.streamMessage (stream: stream1, topic: 'a' , sender: user10),
114
113
]);
115
114
});
116
115
117
- group ('multiple trackers' , () {
118
- test ('batch goes before the existing messages' , () {
119
- checkHandleMessages ([
120
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 300 ),
121
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 500 ),
122
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 600 ),
123
- ], [
124
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 200 ),
125
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 400 ),
126
- ]);
127
- });
128
-
129
- test ('batch goes after the existing messages' , () {
130
- checkHandleMessages ([
131
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 300 ),
132
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 600 ),
133
- ], [
134
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 400 ),
135
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 500 ),
136
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 700 ),
137
- ]);
138
- });
116
+ test ('add new sender' , () {
117
+ checkHandleMessages (
118
+ [eg.streamMessage (stream: stream1, topic: 'a' , sender: user10)],
119
+ [eg.streamMessage (stream: stream1, topic: 'a' , sender: user20)]);
120
+ });
139
121
140
- test ('batch is interspersed among the existing messages' , () {
141
- checkHandleMessages ([
142
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 100 ),
143
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 300 ),
144
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 500 ),
145
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 700 ),
146
- ], [
147
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 200 ),
148
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 400 ),
149
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 600 ),
150
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 800 ),
151
- ]);
152
- });
122
+ test ('add new topic' , () {
123
+ checkHandleMessages (
124
+ [eg.streamMessage (stream: stream1, topic: 'a' , sender: user10)],
125
+ [eg.streamMessage (stream: stream1, topic: 'b' , sender: user10)]);
126
+ });
153
127
154
- test ('batch contains some of already-existing messages' , () {
155
- checkHandleMessages ([
156
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 200 ),
157
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 300 ),
158
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 400 ),
159
- ], [
160
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 200 ),
161
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 400 ),
162
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 500 ),
163
- ]);
164
- });
128
+ test ('add new stream' , () {
129
+ checkHandleMessages (
130
+ [eg.streamMessage (stream: stream1, topic: 'a' , sender: user10)],
131
+ [eg.streamMessage (stream: stream2, topic: 'a' , sender: user10)]);
132
+ });
165
133
166
- test ('batch with both DM and stream messages -> ignores DM, processes stream messages' , () {
167
- checkHandleMessages ([
168
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 100 ),
169
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 200 ),
170
- ], [
171
- eg.streamMessage (stream: stream1, topic: 'a' , sender: user10, id: 300 ),
172
- eg.dmMessage (from: eg.otherUser, to: [eg.selfUser], id: 200 ),
173
- eg.streamMessage (stream: stream1, topic: 'b' , sender: user10, id: 400 ),
174
- ]);
175
- });
134
+ test ('multiple conversations and senders interspersed' , () {
135
+ checkHandleMessages ([], [
136
+ eg.streamMessage (stream: stream1, topic: 'a' , sender: user10),
137
+ eg.streamMessage (stream: stream1, topic: 'b' , sender: user10),
138
+ eg.streamMessage (stream: stream2, topic: 'a' , sender: user10),
139
+ eg.streamMessage (stream: stream1, topic: 'a' , sender: user20),
140
+ eg.streamMessage (stream: stream1, topic: 'a' , sender: user10),
141
+ ]);
176
142
});
177
143
});
178
144
0 commit comments