| addGroupParticipant returns Success |
addGroupParticipant returns Success |
1 |
0 |
0 |
0.065s |
100% |
| closeGroupConversation returns Error on exception |
closeGroupConversation returns Error on exception |
1 |
0 |
0 |
0.046s |
100% |
| closeGroupConversation returns Success |
closeGroupConversation returns Success |
1 |
0 |
0 |
0.022s |
100% |
| createGroupConversation calls update once per extra participant (one-at-a-time growth) |
createGroupConversation calls update once per extra participant (one-at-a-time growth) |
1 |
0 |
0 |
0.072s |
100% |
| createGroupConversation deduplicates creator from the extra-participants loop |
createGroupConversation deduplicates creator from the extra-participants loop |
1 |
0 |
0 |
0.743s |
100% |
| createGroupConversation initial create writes participantIds with only creatorId (UK OSA PR 8 size-1 rule) |
createGroupConversation initial create writes participantIds with only creatorId (UK OSA PR 8 size-1 rule) |
1 |
0 |
0 |
0.057s |
100% |
| createGroupConversation per-participant add failure does not abort the call |
createGroupConversation per-participant add failure does not abort the call |
1 |
0 |
0 |
0.062s |
100% |
| createGroupConversation returns Success |
createGroupConversation returns Success |
1 |
0 |
0 |
0.039s |
100% |
| createGroupConversation stamps cohort field on the doc (UK OSA PR 8 rules bind) |
createGroupConversation stamps cohort field on the doc (UK OSA PR 8 rules bind) |
1 |
0 |
0 |
0.049s |
100% |
| editMessage returns Error on exception |
editMessage returns Error on exception |
1 |
0 |
0 |
0.051s |
100% |
| editMessage returns Success |
editMessage returns Success |
1 |
0 |
0 |
0.044s |
100% |
| getConversations ignores a null snapshot and keeps listening |
getConversations ignores a null snapshot and keeps listening |
1 |
0 |
0 |
0.667s |
100% |
| getConversations propagates a listener error via close |
getConversations propagates a listener error via close |
1 |
0 |
0 |
0.116s |
100% |
| getConversations queries participantIds with a String uid and maps documents |
getConversations queries participantIds with a String uid and maps documents |
1 |
0 |
0 |
0.149s |
100% |
| getConversations removes the listener after an error close |
getConversations removes the listener after an error close |
1 |
0 |
0 |
0.427s |
100% |
| getMessages emits empty list and logs when listener receives error |
getMessages emits empty list and logs when listener receives error |
1 |
0 |
0 |
0.058s |
100% |
| getOrCreateConversation asks the API rather than reading Firestore |
getOrCreateConversation asks the API rather than reading Firestore |
1 |
0 |
0 |
0.052s |
100% |
| getOrCreateConversation returns Error on exception |
getOrCreateConversation returns Error on exception |
1 |
0 |
0 |
0.041s |
100% |
| getOrCreateConversation returns Error when the answer carries no id |
getOrCreateConversation returns Error when the answer carries no id |
1 |
0 |
0 |
0.035s |
100% |
| getOrCreateConversation returns the conversation the API answered |
getOrCreateConversation returns the conversation the API answered |
1 |
0 |
0 |
0.051s |
100% |
| getOrCreateConversation sends the OTHER party, whichever order it is given |
getOrCreateConversation sends the OTHER party, whichever order it is given |
1 |
0 |
0 |
0.036s |
100% |
| hideConversation returns Success |
hideConversation returns Success |
1 |
0 |
0 |
0.087s |
100% |
| hideMessage returns Success |
hideMessage returns Success |
1 |
0 |
0 |
0.031s |
100% |
| markAsRead returns Success |
markAsRead returns Success |
1 |
0 |
0 |
0.063s |
100% |
| muteConversation returns Success |
muteConversation returns Success |
1 |
0 |
0 |
0.038s |
100% |
| muteGroupMember returns Success |
muteGroupMember returns Success |
1 |
0 |
0 |
0.037s |
100% |
| pinConversation returns Success |
pinConversation returns Success |
1 |
0 |
0 |
0.034s |
100% |
| prefetchConversations does not query Firestore when currentUserId is null |
prefetchConversations does not query Firestore when currentUserId is null |
1 |
0 |
0 |
0.060s |
100% |
| prefetchConversations populates the cache which getConversations replays first |
prefetchConversations populates the cache which getConversations replays first |
1 |
0 |
0 |
0.145s |
100% |
| prefetchConversations queries participantIds with a String uid |
prefetchConversations queries participantIds with a String uid |
1 |
0 |
0 |
0.159s |
100% |
| prefetchConversations swallows a Firestore exception and leaves the cache null |
prefetchConversations swallows a Firestore exception and leaves the cache null |
1 |
0 |
0 |
0.050s |
100% |
| recallMessage returns Success |
recallMessage returns Success |
1 |
0 |
0 |
0.059s |
100% |
| removeGroupParticipant returns Success |
removeGroupParticipant returns Success |
1 |
0 |
0 |
0.095s |
100% |
| resetUnreadCount returns Success |
resetUnreadCount returns Success |
1 |
0 |
0 |
0.021s |
100% |
| searchUsers excludes the caller from the results |
searchUsers excludes the caller from the results |
1 |
0 |
0 |
0.040s |
100% |
| searchUsers goes through the API, not Firestore |
searchUsers goes through the API, not Firestore |
1 |
0 |
0 |
0.058s |
100% |
| searchUsers returns empty for a blank query without calling the API |
searchUsers returns empty for a blank query without calling the API |
1 |
0 |
0 |
0.052s |
100% |
| searchUsers returns the users the API reports |
searchUsers returns the users the API reports |
1 |
0 |
0 |
0.068s |
100% |
| searchUsers surfaces a failure as an error, not an empty list |
searchUsers surfaces a failure as an error, not an empty list |
1 |
0 |
0 |
0.032s |
100% |
| searchUsers url-encodes the query rather than pasting it in raw |
searchUsers url-encodes the query rather than pasting it in raw |
1 |
0 |
0 |
0.066s |
100% |
| sendImageMessage returns Success |
sendImageMessage returns Success |
1 |
0 |
0 |
0.063s |
100% |
| sendRoomInviteMessage returns Success |
sendRoomInviteMessage returns Success |
1 |
0 |
0 |
0.067s |
100% |
| sendStickerMessage returns Success |
sendStickerMessage returns Success |
1 |
0 |
0 |
0.048s |
100% |
| sendTextMessage returns Error on exception |
sendTextMessage returns Error on exception |
1 |
0 |
0 |
0.041s |
100% |
| sendTextMessage returns Success |
sendTextMessage returns Success |
1 |
0 |
0 |
0.055s |
100% |
| toggleReaction returns Success |
toggleReaction returns Success |
1 |
0 |
0 |
0.093s |
100% |
| transferOwnership returns Success |
transferOwnership returns Success |
1 |
0 |
0 |
0.036s |
100% |
| unmuteGroupMember returns Success |
unmuteGroupMember returns Success |
1 |
0 |
0 |
0.061s |
100% |
| updateGroupName returns Success |
updateGroupName returns Success |
1 |
0 |
0 |
0.046s |
100% |
| updateGroupRoles returns Success |
updateGroupRoles returns Success |
1 |
0 |
0 |
0.042s |
100% |