|
1 | 1 | import 'package:checks/checks.dart';
|
2 | 2 | import 'package:test/scaffolding.dart';
|
| 3 | +import 'package:zulip/api/model/events.dart'; |
3 | 4 | import 'package:zulip/model/compose.dart';
|
4 | 5 | import 'package:zulip/model/localizations.dart';
|
5 | 6 | import 'package:zulip/model/store.dart';
|
@@ -225,26 +226,60 @@ hello
|
225 | 226 | group('mention', () {
|
226 | 227 | group('user', () {
|
227 | 228 | final user = eg.user(userId: 123, fullName: 'Full Name');
|
228 |
| - test('not silent', () { |
| 229 | + final message = eg.streamMessage(sender: user); |
| 230 | + test('not silent', () async { |
| 231 | + final store = eg.store(); |
| 232 | + await store.addUser(user); |
229 | 233 | check(userMention(user, silent: false)).equals('@**Full Name|123**');
|
| 234 | + check(userMentionFromMessage(message, silent: false, users: store)) |
| 235 | + .equals('@**Full Name|123**'); |
230 | 236 | });
|
231 |
| - test('silent', () { |
| 237 | + test('silent', () async { |
| 238 | + final store = eg.store(); |
| 239 | + await store.addUser(user); |
232 | 240 | check(userMention(user, silent: true)).equals('@_**Full Name|123**');
|
| 241 | + check(userMentionFromMessage(message, silent: true, users: store)) |
| 242 | + .equals('@_**Full Name|123**'); |
233 | 243 | });
|
234 | 244 | test('`users` passed; has two users with same fullName', () async {
|
235 | 245 | final store = eg.store();
|
236 | 246 | await store.addUsers([user, eg.user(userId: 5), eg.user(userId: 234, fullName: user.fullName)]);
|
237 | 247 | check(userMention(user, silent: true, users: store)).equals('@_**Full Name|123**');
|
| 248 | + check(userMentionFromMessage(message, silent: true, users: store)) |
| 249 | + .equals('@_**Full Name|123**'); |
238 | 250 | });
|
239 | 251 | test('`users` passed; has two same-name users but one of them is deactivated', () async {
|
240 | 252 | final store = eg.store();
|
241 | 253 | await store.addUsers([user, eg.user(userId: 5), eg.user(userId: 234, fullName: user.fullName, isActive: false)]);
|
242 | 254 | check(userMention(user, silent: true, users: store)).equals('@_**Full Name|123**');
|
| 255 | + check(userMentionFromMessage(message, silent: true, users: store)) |
| 256 | + .equals('@_**Full Name|123**'); |
243 | 257 | });
|
244 | 258 | test('`users` passed; user has unique fullName', () async {
|
245 | 259 | final store = eg.store();
|
246 | 260 | await store.addUsers([user, eg.user(userId: 234, fullName: 'Another Name')]);
|
247 | 261 | check(userMention(user, silent: true, users: store)).equals('@_**Full Name**');
|
| 262 | + check(userMentionFromMessage(message, silent: true, users: store)) |
| 263 | + .equals('@_**Full Name|123**'); |
| 264 | + }); |
| 265 | + |
| 266 | + test('userMentionFromMessage, known user', () async { |
| 267 | + final user = eg.user(userId: 123, fullName: 'Full Name'); |
| 268 | + final store = eg.store(); |
| 269 | + await store.addUser(user); |
| 270 | + check(userMentionFromMessage(message, silent: false, users: store)) |
| 271 | + .equals('@**Full Name|123**'); |
| 272 | + await store.handleEvent(RealmUserUpdateEvent(id: 1, |
| 273 | + userId: user.userId, fullName: 'New Name')); |
| 274 | + check(userMentionFromMessage(message, silent: false, users: store)) |
| 275 | + .equals('@**New Name|123**'); |
| 276 | + }); |
| 277 | + |
| 278 | + test('userMentionFromMessage, unknown user', () async { |
| 279 | + final store = eg.store(); |
| 280 | + check(store.getUser(user.userId)).isNull(); |
| 281 | + check(userMentionFromMessage(message, silent: false, users: store)) |
| 282 | + .equals('@**Full Name|123**'); |
248 | 283 | });
|
249 | 284 | });
|
250 | 285 |
|
|
0 commit comments