@@ -22,6 +22,36 @@ void main() {
22
22
});
23
23
});
24
24
25
+ group ('senderDisplayName' , () {
26
+ test ('on a known user' , () async {
27
+ final store = eg.store ();
28
+ final user = eg.user (fullName: 'Old Name' );
29
+ await store.addUser (user);
30
+ final message = eg.streamMessage (sender: user);
31
+ await store.addMessage (message);
32
+ check (store.senderDisplayName (message)).equals ('Old Name' );
33
+
34
+ // If the user's name changes, `store.senderDisplayName` should update...
35
+ await store.handleEvent (RealmUserUpdateEvent (id: 1 ,
36
+ userId: user.userId, fullName: 'New Name' ));
37
+ check (store.senderDisplayName (message)).equals ('New Name' );
38
+ // ... even though the Message object itself still has the old name.
39
+ check (store.messages[message.id]! ).senderFullName.equals ('Old Name' );
40
+ });
41
+
42
+ test ('on an unknown user' , () async {
43
+ final store = eg.store ();
44
+ final message = eg.streamMessage (sender: eg.user (fullName: 'Some User' ));
45
+ await store.addMessage (message);
46
+ // If the user is unknown, `store.senderDisplayName` should fall back
47
+ // to the name in the message...
48
+ check (store.senderDisplayName (message)).equals ('Some User' );
49
+ // ... even though `store.userDisplayName` (with no message available
50
+ // for fallback) only has a generic fallback name.
51
+ check (store.userDisplayName (message.senderId)).equals ('(unknown user)' );
52
+ });
53
+ });
54
+
25
55
group ('RealmUserUpdateEvent' , () {
26
56
// TODO write more tests for handling RealmUserUpdateEvent
27
57
0 commit comments