| Child |
Name |
Tests |
Failures |
Skipped |
Duration |
Success rate |
| addGroupParticipant calls repository |
addGroupParticipant calls repository |
1 |
0 |
0 |
0.782s |
100% |
| addStickerFromImage does nothing without stickerStorage |
addStickerFromImage does nothing without stickerStorage |
1 |
0 |
0 |
0.086s |
100% |
| addStickerFromImage saves to storage and refreshes lists |
addStickerFromImage saves to storage and refreshes lists |
1 |
0 |
0 |
0.264s |
100% |
| blocked by other user sets isBlocked |
blocked by other user sets isBlocked |
1 |
0 |
0 |
0.084s |
100% |
| blocked by self sets isBlocked |
blocked by self sets isBlocked |
1 |
0 |
0 |
0.084s |
100% |
| cancelEditing clears editing state |
cancelEditing clears editing state |
1 |
0 |
0 |
0.087s |
100% |
| cancelReply clears state |
cancelReply clears state |
1 |
0 |
0 |
0.080s |
100% |
| clearError clears error state |
clearError clears error state |
1 |
0 |
0 |
0.078s |
100% |
| closeStickerPicker closes picker |
closeStickerPicker closes picker |
1 |
0 |
0 |
0.070s |
100% |
| closeStickerPicker is no-op when already closed |
closeStickerPicker is no-op when already closed |
1 |
0 |
0 |
0.084s |
100% |
| deleteSticker calls stickerStorage removeSticker and refreshes list |
deleteSticker calls stickerStorage removeSticker and refreshes list |
1 |
0 |
0 |
0.074s |
100% |
| deleteSticker does nothing without stickerStorage |
deleteSticker does nothing without stickerStorage |
1 |
0 |
0 |
0.080s |
100% |
| empty messages list does not show error state |
empty messages list does not show error state |
1 |
0 |
0 |
0.073s |
100% |
| getEditHistory returns edit history from repository |
getEditHistory returns edit history from repository |
1 |
0 |
0 |
0.083s |
100% |
| getEditHistory returns empty list on error |
getEditHistory returns empty list on error |
1 |
0 |
0 |
0.084s |
100% |
| hideConversation calls repo |
hideConversation calls repo |
1 |
0 |
0 |
0.098s |
100% |
| hideMessage failure sets error |
hideMessage failure sets error |
1 |
0 |
0 |
0.082s |
100% |
| hideMessage success sends mod action message |
hideMessage success sends mod action message |
1 |
0 |
0 |
0.085s |
100% |
| init handles getOrCreateConversation failure |
init handles getOrCreateConversation failure |
1 |
0 |
0 |
0.089s |
100% |
| init loads users and conversationId |
init loads users and conversationId |
1 |
0 |
0 |
0.086s |
100% |
| init skips when no currentUserId |
init skips when no currentUserId |
1 |
0 |
0 |
0.071s |
100% |
| initGroupChat loads group conversation |
initGroupChat loads group conversation |
1 |
0 |
0 |
0.095s |
100% |
| initOneOnOneChat sets isLoading false even when conversation fetch fails |
initOneOnOneChat sets isLoading false even when conversation fetch fails |
1 |
0 |
0 |
0.089s |
100% |
| isLoading is false after conversation loaded with no messages |
isLoading is false after conversation loaded with no messages |
1 |
0 |
0 |
0.121s |
100% |
| isLoading is false after successful init completes |
isLoading is false after successful init completes |
1 |
0 |
0 |
0.066s |
100% |
| leaveGroup as non-admin calls removeGroupParticipant |
leaveGroup as non-admin calls removeGroupParticipant |
1 |
0 |
0 |
0.123s |
100% |
| leaveGroup calls closeGroupConversation for admin |
leaveGroup calls closeGroupConversation for admin |
1 |
0 |
0 |
0.142s |
100% |
| loadOlderMessages does not run when messages empty |
loadOlderMessages does not run when messages empty |
1 |
0 |
0 |
0.097s |
100% |
| loadOlderMessages merges with existing messages |
loadOlderMessages merges with existing messages |
1 |
0 |
0 |
0.097s |
100% |
| loadOlderMessages sets hasOlderMessages false when underfull |
loadOlderMessages sets hasOlderMessages false when underfull |
1 |
0 |
0 |
0.096s |
100% |
| markMessagesAsRead calls repo when last message from other user is unread |
markMessagesAsRead calls repo when last message from other user is unread |
1 |
0 |
0 |
0.088s |
100% |
| markMessagesAsRead does not call repo when already read |
markMessagesAsRead does not call repo when already read |
1 |
0 |
0 |
0.082s |
100% |
| markMessagesAsRead does not call repo when no messages from other user |
markMessagesAsRead does not call repo when no messages from other user |
1 |
0 |
0 |
0.080s |
100% |
| messages flow updates state |
messages flow updates state |
1 |
0 |
0 |
0.074s |
100% |
| moveStickerToFront calls stickerStorage moveSticker and refreshes list |
moveStickerToFront calls stickerStorage moveSticker and refreshes list |
1 |
0 |
0 |
0.950s |
100% |
| moveStickerToFront does nothing without stickerStorage |
moveStickerToFront does nothing without stickerStorage |
1 |
0 |
0 |
0.103s |
100% |
| muteGroupMember failure sets error |
muteGroupMember failure sets error |
1 |
0 |
0 |
0.076s |
100% |
| muteGroupMember success reloads mutes |
muteGroupMember success reloads mutes |
1 |
0 |
0 |
0.100s |
100% |
| observeMessages sets error state when flow throws exception |
observeMessages sets error state when flow throws exception |
1 |
0 |
0 |
0.082s |
100% |
| observeTyping updates state |
observeTyping updates state |
1 |
0 |
0 |
0.086s |
100% |
| onTextChanged sends typing indicator with correct params |
onTextChanged sends typing indicator with correct params |
1 |
0 |
0 |
0.092s |
100% |
| onTextChanged sets typing |
onTextChanged sets typing |
1 |
0 |
0 |
0.094s |
100% |
| pmPrivacy EVERYONE does not block |
pmPrivacy EVERYONE does not block |
1 |
0 |
0 |
0.079s |
100% |
| pmPrivacy FOLLOWERS_ONLY allows when followed |
pmPrivacy FOLLOWERS_ONLY allows when followed |
1 |
0 |
0 |
0.082s |
100% |
| pmPrivacy FOLLOWERS_ONLY blocks when not followed |
pmPrivacy FOLLOWERS_ONLY blocks when not followed |
1 |
0 |
0 |
0.074s |
100% |
| pmPrivacy NO_ONE blocks messaging |
pmPrivacy NO_ONE blocks messaging |
1 |
0 |
0 |
0.074s |
100% |
| recallMessage calls repo with correct params |
recallMessage calls repo with correct params |
1 |
0 |
0 |
0.096s |
100% |
| recallMessage calls repository |
recallMessage calls repository |
1 |
0 |
0 |
0.107s |
100% |
| recallMessage does nothing without conversationId |
recallMessage does nothing without conversationId |
1 |
0 |
0 |
0.092s |
100% |
| recallMessage sets error on failure |
recallMessage sets error on failure |
1 |
0 |
0 |
0.099s |
100% |
| recallMessage success removes message via flow update |
recallMessage success removes message via flow update |
1 |
0 |
0 |
0.087s |
100% |
| refreshMessages sets isRefreshing and re-subscribes |
refreshMessages sets isRefreshing and re-subscribes |
1 |
0 |
0 |
0.088s |
100% |
| removeGroupParticipant calls repository |
removeGroupParticipant calls repository |
1 |
0 |
0 |
0.104s |
100% |
| reportMessage calls reportRepo on success |
reportMessage calls reportRepo on success |
1 |
0 |
0 |
0.117s |
100% |
| reportMessage sets error on failure |
reportMessage sets error on failure |
1 |
0 |
0 |
0.102s |
100% |
| searchMessages short query clears results |
searchMessages short query clears results |
1 |
0 |
0 |
0.074s |
100% |
| searchMessages updates results |
searchMessages updates results |
1 |
0 |
0 |
0.081s |
100% |
| sendImages calls repo with correct params |
sendImages calls repo with correct params |
1 |
0 |
0 |
0.082s |
100% |
| sendImages clears reply |
sendImages clears reply |
1 |
0 |
0 |
0.097s |
100% |
| sendImages rejects empty list |
sendImages rejects empty list |
1 |
0 |
0 |
0.077s |
100% |
| sendMessage calls repo with correct params |
sendMessage calls repo with correct params |
1 |
0 |
0 |
0.102s |
100% |
| sendMessage clears reply |
sendMessage clears reply |
1 |
0 |
0 |
0.101s |
100% |
| sendMessage moderation filter blocks |
sendMessage moderation filter blocks |
1 |
0 |
0 |
0.086s |
100% |
| sendMessage rejects empty text |
sendMessage rejects empty text |
1 |
0 |
0 |
0.082s |
100% |
| sendMessage rejects overlength text |
sendMessage rejects overlength text |
1 |
0 |
0 |
0.082s |
100% |
| sendMessage repo failure sets error |
sendMessage repo failure sets error |
1 |
0 |
0 |
0.068s |
100% |
| sendMessage spam filter blocks |
sendMessage spam filter blocks |
1 |
0 |
0 |
0.080s |
100% |
| sendMessage trims whitespace |
sendMessage trims whitespace |
1 |
0 |
0 |
0.124s |
100% |
| sendMessage with whitespace-only text does not send |
sendMessage with whitespace-only text does not send |
1 |
0 |
0 |
0.088s |
100% |
| sendRoomInvite calls repository |
sendRoomInvite calls repository |
1 |
0 |
0 |
0.093s |
100% |
| sendRoomInvite failure sets error |
sendRoomInvite failure sets error |
1 |
0 |
0 |
0.087s |
100% |
| sendSticker calls repo with correct params |
sendSticker calls repo with correct params |
1 |
0 |
0 |
0.098s |
100% |
| sendSticker does nothing without conversationId |
sendSticker does nothing without conversationId |
1 |
0 |
0 |
0.104s |
100% |
| sendSticker with Sticker object marks as recent |
sendSticker with Sticker object marks as recent |
1 |
0 |
0 |
0.079s |
100% |
| sendSticker with Sticker object using URL sends directly |
sendSticker with Sticker object using URL sends directly |
1 |
0 |
0 |
0.093s |
100% |
| sendSticker with Sticker object without conversationId does nothing |
sendSticker with Sticker object without conversationId does nothing |
1 |
0 |
0 |
0.082s |
100% |
| settings flow updates mute and pin state |
settings flow updates mute and pin state |
1 |
0 |
0 |
0.083s |
100% |
| startEditing rejects expired window |
startEditing rejects expired window |
1 |
0 |
0 |
0.078s |
100% |
| startEditing rejects other users message |
startEditing rejects other users message |
1 |
0 |
0 |
0.095s |
100% |
| startEditing sets editing state |
startEditing sets editing state |
1 |
0 |
0 |
0.076s |
100% |
| startReply sets state |
startReply sets state |
1 |
0 |
0 |
0.072s |
100% |
| submitEdit calls repo |
submitEdit calls repo |
1 |
0 |
0 |
0.089s |
100% |
| submitEdit error sets error state |
submitEdit error sets error state |
1 |
0 |
0 |
0.087s |
100% |
| submitEdit rejects empty text |
submitEdit rejects empty text |
1 |
0 |
0 |
0.071s |
100% |
| submitEdit success clears editing state |
submitEdit success clears editing state |
1 |
0 |
0 |
0.093s |
100% |
| toggleMute calls muteConversation with false when currently muted |
toggleMute calls muteConversation with false when currently muted |
1 |
0 |
0 |
0.093s |
100% |
| toggleMute calls muteConversation with true when currently unmuted |
toggleMute calls muteConversation with true when currently unmuted |
1 |
0 |
0 |
0.087s |
100% |
| toggleMute calls repo with inverted value |
toggleMute calls repo with inverted value |
1 |
0 |
0 |
0.165s |
100% |
| togglePin calls pinConversation with false when currently pinned |
togglePin calls pinConversation with false when currently pinned |
1 |
0 |
0 |
0.113s |
100% |
| togglePin calls pinConversation with true when currently unpinned |
togglePin calls pinConversation with true when currently unpinned |
1 |
0 |
0 |
0.105s |
100% |
| togglePin calls repo with inverted value |
togglePin calls repo with inverted value |
1 |
0 |
0 |
0.192s |
100% |
| toggleReaction calls repo with correct params |
toggleReaction calls repo with correct params |
1 |
0 |
0 |
0.096s |
100% |
| toggleSearch enables and disables |
toggleSearch enables and disables |
1 |
0 |
0 |
0.084s |
100% |
| toggleStickerPicker does not load stickers when closing |
toggleStickerPicker does not load stickers when closing |
1 |
0 |
0 |
0.073s |
100% |
| toggleStickerPicker loads stickers from storage when opening |
toggleStickerPicker loads stickers from storage when opening |
1 |
0 |
0 |
0.079s |
100% |
| toggleStickerPicker toggles state |
toggleStickerPicker toggles state |
1 |
0 |
0 |
0.080s |
100% |
| transferOwnership failure sets error |
transferOwnership failure sets error |
1 |
0 |
0 |
0.098s |
100% |
| transferOwnership success reinitializes group |
transferOwnership success reinitializes group |
1 |
0 |
0 |
0.086s |
100% |
| unmuteGroupMember failure sets error |
unmuteGroupMember failure sets error |
1 |
0 |
0 |
0.094s |
100% |
| unmuteGroupMember success reloads mutes |
unmuteGroupMember success reloads mutes |
1 |
0 |
0 |
0.094s |
100% |
| updateGroupDescription calls repository |
updateGroupDescription calls repository |
1 |
0 |
0 |
0.084s |
100% |
| updateGroupName calls repo |
updateGroupName calls repo |
1 |
0 |
0 |
0.086s |
100% |
| updateGroupName calls repository |
updateGroupName calls repository |
1 |
0 |
0 |
0.094s |
100% |
| updateGroupName rejects blank name |
updateGroupName rejects blank name |
1 |
0 |
0 |
0.082s |
100% |
| updateGroupPermissions calls repository |
updateGroupPermissions calls repository |
1 |
0 |
0 |
0.088s |
100% |
| updateGroupPhoto calls repository |
updateGroupPhoto calls repository |
1 |
0 |
0 |
0.097s |
100% |
| updateGroupRoles failure sets error |
updateGroupRoles failure sets error |
1 |
0 |
0 |
0.082s |
100% |
| updateGroupRoles success reinitializes group |
updateGroupRoles success reinitializes group |
1 |
0 |
0 |
0.087s |
100% |
| updateModNotifyMode calls repository |
updateModNotifyMode calls repository |
1 |
0 |
0 |
0.070s |
100% |
| updateSystemMessageConfig calls repository |
updateSystemMessageConfig calls repository |
1 |
0 |
0 |
0.120s |
100% |
| uploadAndSendImages rejects empty list |
uploadAndSendImages rejects empty list |
1 |
0 |
0 |
0.079s |
100% |
| uploadAndSendImages rejects over max images |
uploadAndSendImages rejects over max images |
1 |
0 |
0 |
0.092s |
100% |
| uploadAndSendImages shows pending message immediately |
uploadAndSendImages shows pending message immediately |
1 |
0 |
0 |
0.104s |
100% |