| Child |
Name |
Tests |
Failures |
Skipped |
Duration |
Success rate |
| acceptApprovedRequest - already seated dismisses notification without re-seating |
acceptApprovedRequest - already seated dismisses notification without re-seating |
1 |
0 |
0 |
0.025s |
100% |
| acceptApprovedRequest - falls back to next available seat when original is occupied |
acceptApprovedRequest - falls back to next available seat when original is occupied |
1 |
0 |
0 |
0.115s |
100% |
| acceptApprovedRequest - no seats available shows error |
acceptApprovedRequest - no seats available shows error |
1 |
0 |
0 |
0.021s |
100% |
| acceptApprovedRequest - sees Success status |
acceptApprovedRequest - sees Success status |
1 |
0 |
0 |
0.022s |
100% |
| acceptApprovedRequest calls takeSeat |
acceptApprovedRequest calls takeSeat |
1 |
0 |
0 |
0.034s |
100% |
| acceptInvite - all seats occupied is no-op |
acceptInvite - all seats occupied is no-op |
1 |
0 |
0 |
0.040s |
100% |
| acceptInvite - finds first empty non-owner seat |
acceptInvite - finds first empty non-owner seat |
1 |
0 |
0 |
0.021s |
100% |
| acceptInvite - no pending invite is no-op |
acceptInvite - no pending invite is no-op |
1 |
0 |
0 |
0.069s |
100% |
| addHost - attendee cannot add a host |
addHost - attendee cannot add a host |
1 |
0 |
0 |
0.026s |
100% |
| addHost - does not send system message |
addHost - does not send system message |
1 |
0 |
0 |
0.056s |
100% |
| addHost - non-owner cannot add a host |
addHost - non-owner cannot add a host |
1 |
0 |
0 |
0.037s |
100% |
| addHost - owner can add a host |
addHost - owner can add a host |
1 |
0 |
0 |
0.026s |
100% |
| allKnownUsers accumulates and retains departed users |
allKnownUsers accumulates and retains departed users |
1 |
0 |
0 |
0.061s |
100% |
| alreadyInRoom path sets isSeated but does not auto-enable mic on permission grant |
alreadyInRoom path sets isSeated but does not auto-enable mic on permission grant |
1 |
0 |
0 |
0.018s |
100% |
| alreadyInRoom path without seat does not enable mic |
alreadyInRoom path without seat does not enable mic |
1 |
0 |
0 |
0.073s |
100% |
| approved request does NOT show notification if user is already seated |
approved request does NOT show notification if user is already seated |
1 |
0 |
0 |
0.046s |
100% |
| approved request removes queued invite |
approved request removes queued invite |
1 |
0 |
0 |
0.021s |
100% |
| approved request shows RequestApproved notification to requester |
approved request shows RequestApproved notification to requester |
1 |
0 |
0 |
0.036s |
100% |
| approveRequestFromNotification after 5s does NOT call takeSeat |
approveRequestFromNotification after 5s does NOT call takeSeat |
1 |
0 |
0 |
0.128s |
100% |
| approveRequestFromNotification within 5s calls takeSeat |
approveRequestFromNotification within 5s calls takeSeat |
1 |
0 |
0 |
0.026s |
100% |
| attendee joining room also joins voice as audience |
attendee joining room also joins voice as audience |
1 |
0 |
0 |
0.038s |
100% |
| becoming seated enables mic when has audio permission |
becoming seated enables mic when has audio permission |
1 |
0 |
0 |
0.042s |
100% |
| blockUser - error sets error message |
blockUser - error sets error message |
1 |
0 |
0 |
0.024s |
100% |
| blockUser - success adds to blocked set |
blockUser - success adds to blocked set |
1 |
0 |
0 |
0.028s |
100% |
| cancelEditMessage clears edit state |
cancelEditMessage clears edit state |
1 |
0 |
0 |
0.022s |
100% |
| cancelJoin sets shouldNavigateBack |
cancelJoin sets shouldNavigateBack |
1 |
0 |
0 |
0.032s |
100% |
| checkBlockConflicts - banned user sees Banned warning with reason |
checkBlockConflicts - banned user sees Banned warning with reason |
1 |
0 |
0 |
0.019s |
100% |
| checkBlockConflicts - banned user without kickInfo sees null reason |
checkBlockConflicts - banned user without kickInfo sees null reason |
1 |
0 |
0 |
0.036s |
100% |
| clearError clears error |
clearError clears error |
1 |
0 |
0 |
0.043s |
100% |
| clearError uses atomic update |
clearError uses atomic update |
1 |
0 |
0 |
0.041s |
100% |
| clearReportSubmitted clears reportSubmitted and reportError |
clearReportSubmitted clears reportSubmitted and reportError |
1 |
0 |
0 |
0.048s |
100% |
| closeRoom - does not send system message |
closeRoom - does not send system message |
1 |
0 |
0 |
0.022s |
100% |
| confirmJoinDespiteBlock - clears warning and joins room |
confirmJoinDespiteBlock - clears warning and joins room |
1 |
0 |
0 |
0.047s |
100% |
| declineApprovedRequest calls cancelApprovedRequest |
declineApprovedRequest calls cancelApprovedRequest |
1 |
0 |
0 |
0.048s |
100% |
| declineInvite calls roomRepository cancelInvite |
declineInvite calls roomRepository cancelInvite |
1 |
0 |
0 |
0.034s |
100% |
| denyRequestFromNotification calls denyRequest |
denyRequestFromNotification calls denyRequest |
1 |
0 |
0 |
0.053s |
100% |
| disconnectedUserIds - does not include owner during OWNER_AWAY |
disconnectedUserIds - does not include owner during OWNER_AWAY |
1 |
0 |
0 |
0.049s |
100% |
| disconnectedUserIds - propagated from ActiveRoomManager |
disconnectedUserIds - propagated from ActiveRoomManager |
1 |
0 |
0 |
0.024s |
100% |
| dismissCurrentNotification clears active notification |
dismissCurrentNotification clears active notification |
1 |
0 |
0 |
0.018s |
100% |
| dismissExpiryUpsellDialog clears the flag |
dismissExpiryUpsellDialog clears the flag |
1 |
0 |
0 |
0.019s |
100% |
| editMessage success calls messageRepository |
editMessage success calls messageRepository |
1 |
0 |
0 |
0.061s |
100% |
| editMessage with blank text is a no-op |
editMessage with blank text is a no-op |
1 |
0 |
0 |
0.021s |
100% |
| editMessage without editingMessageId is a no-op |
editMessage without editingMessageId is a no-op |
1 |
0 |
0 |
0.059s |
100% |
| effectiveSeatCount - normal user gets normalSeatCount from config |
effectiveSeatCount - normal user gets normalSeatCount from config |
1 |
0 |
0 |
0.051s |
100% |
| effectiveSeatCount - Super Shy owner gets MAX_SEATS |
effectiveSeatCount - Super Shy owner gets MAX_SEATS |
1 |
0 |
0 |
0.034s |
100% |
| expiry upsell - does NOT show for Super Shy owner |
expiry upsell - does NOT show for Super Shy owner |
1 |
0 |
0 |
0.020s |
100% |
| expiry upsell - shows dialog when countdown starts for non-SuperShy owner |
expiry upsell - shows dialog when countdown starts for non-SuperShy owner |
1 |
0 |
0 |
0.076s |
100% |
| expiry upsell - shows only once per session |
expiry upsell - shows only once per session |
1 |
0 |
0 |
0.040s |
100% |
| forceMuteUser - attendee cannot force mute |
forceMuteUser - attendee cannot force mute |
1 |
0 |
0 |
0.100s |
100% |
| forceMuteUser - cannot mute owner |
forceMuteUser - cannot mute owner |
1 |
0 |
0 |
0.057s |
100% |
| forceMuteUser - host cannot mute other host |
forceMuteUser - host cannot mute other host |
1 |
0 |
0 |
0.123s |
100% |
| forceMuteUser - owner can force-mute a host |
forceMuteUser - owner can force-mute a host |
1 |
0 |
0 |
0.105s |
100% |
| forceMuteUser - owner mutes attendee toggles mute |
forceMuteUser - owner mutes attendee toggles mute |
1 |
0 |
0 |
0.055s |
100% |
| forceMuteUser - skips when user is already muted |
forceMuteUser - skips when user is already muted |
1 |
0 |
0 |
0.032s |
100% |
| gift event - enqueues fresh event into animation queue |
gift event - enqueues fresh event into animation queue |
1 |
0 |
0 |
0.020s |
100% |
| gift event - null lastGiftEvent is ignored |
gift event - null lastGiftEvent is ignored |
1 |
0 |
0 |
0.017s |
100% |
| gift event - respects minGiftAnimationValue filter |
gift event - respects minGiftAnimationValue filter |
1 |
0 |
0 |
0.042s |
100% |
| gift event - skips duplicate timestamp |
gift event - skips duplicate timestamp |
1 |
0 |
0 |
0.018s |
100% |
| gift event - skips old event on first observation |
gift event - skips old event on first observation |
1 |
0 |
0 |
0.053s |
100% |
| handleFirstJoin - joinRoom is called with correct roomId and userId |
handleFirstJoin - joinRoom is called with correct roomId and userId |
1 |
0 |
0 |
0.029s |
100% |
| handleFirstJoin - non-owner calls joinRoom before recordFirstJoinTimestamp |
handleFirstJoin - non-owner calls joinRoom before recordFirstJoinTimestamp |
1 |
0 |
0 |
0.036s |
100% |
| handleRoomClosed batch-loads host users |
handleRoomClosed batch-loads host users |
1 |
0 |
0 |
0.045s |
100% |
| invite suppressed when approved request is already active |
invite suppressed when approved request is already active |
1 |
0 |
0 |
0.054s |
100% |
| inviteFromMessage delegates to inviteUser |
inviteFromMessage delegates to inviteUser |
1 |
0 |
0 |
0.067s |
100% |
| inviteUser - already pending invite is rejected |
inviteUser - already pending invite is rejected |
1 |
0 |
0 |
0.078s |
100% |
| inviteUser - already seated user is rejected |
inviteUser - already seated user is rejected |
1 |
0 |
0 |
0.020s |
100% |
| inviteUser - attendee cannot invite |
inviteUser - attendee cannot invite |
1 |
0 |
0 |
0.038s |
100% |
| inviteUser - does not send system message |
inviteUser - does not send system message |
1 |
0 |
0 |
0.029s |
100% |
| inviteUser - host cannot invite when requireApproval ON |
inviteUser - host cannot invite when requireApproval ON |
1 |
0 |
0 |
0.055s |
100% |
| inviteUser - host invites when requireApproval OFF succeeds |
inviteUser - host invites when requireApproval OFF succeeds |
1 |
0 |
0 |
0.049s |
100% |
| inviteUser - owner invites regardless of requireApproval |
inviteUser - owner invites regardless of requireApproval |
1 |
0 |
0 |
0.045s |
100% |
| inviteUser - user who left room shows error |
inviteUser - user who left room shows error |
1 |
0 |
0 |
0.058s |
100% |
| joinRoom - always starts muted even with isMuted false |
joinRoom - always starts muted even with isMuted false |
1 |
0 |
0 |
0.049s |
100% |
| joinRoom - owner already seated with isMuted true disables mic |
joinRoom - owner already seated with isMuted true disables mic |
1 |
0 |
0 |
0.047s |
100% |
| joinRoom joins voice and disables mic when no audio permission |
joinRoom joins voice and disables mic when no audio permission |
1 |
0 |
0 |
0.049s |
100% |
| kicked user sees kicker name and reason in UI state |
kicked user sees kicker name and reason in UI state |
1 |
0 |
0 |
0.053s |
100% |
| kicked user without kickInfo sees default reason |
kicked user without kickInfo sees default reason |
1 |
0 |
0 |
0.017s |
100% |
| kickUser - attendee cannot kick |
kickUser - attendee cannot kick |
1 |
0 |
0 |
0.057s |
100% |
| kickUser - blank reason defaults to No reason given |
kickUser - blank reason defaults to No reason given |
1 |
0 |
0 |
0.038s |
100% |
| kickUser - cannot kick owner |
kickUser - cannot kick owner |
1 |
0 |
0 |
0.051s |
100% |
| kickUser - host cannot kick other host |
kickUser - host cannot kick other host |
1 |
0 |
0 |
0.056s |
100% |
| kickUser - owner can kick a host |
kickUser - owner can kick a host |
1 |
0 |
0 |
0.047s |
100% |
| kickUser - owner kicks attendee succeeds |
kickUser - owner kicks attendee succeeds |
1 |
0 |
0 |
0.028s |
100% |
| kickUser - reason is passed to repository |
kickUser - reason is passed to repository |
1 |
0 |
0 |
0.037s |
100% |
| kickUser - system message does not expose reason to room |
kickUser - system message does not expose reason to room |
1 |
0 |
0 |
0.021s |
100% |
| kickUser - unseated user can be kicked |
kickUser - unseated user can be kicked |
1 |
0 |
0 |
0.051s |
100% |
| kickUser sets error state on failure |
kickUser sets error state on failure |
1 |
0 |
0 |
0.058s |
100% |
| leaveRoom - leaves voice and removes presence |
leaveRoom - leaves voice and removes presence |
1 |
0 |
0 |
0.032s |
100% |
| leaveRoom - non-owner clears seat and leaves |
leaveRoom - non-owner clears seat and leaves |
1 |
0 |
0 |
0.040s |
100% |
| leaveRoom - non-owner clears seat on explicit leave |
leaveRoom - non-owner clears seat on explicit leave |
1 |
0 |
0 |
0.034s |
100% |
| leaveRoom - owner alone closes room |
leaveRoom - owner alone closes room |
1 |
0 |
0 |
0.065s |
100% |
| leaveRoom - owner stays in participants during OWNER_AWAY |
leaveRoom - owner stays in participants during OWNER_AWAY |
1 |
0 |
0 |
0.030s |
100% |
| leaveRoom - owner with others on mic sets owner away |
leaveRoom - owner with others on mic sets owner away |
1 |
0 |
0 |
0.038s |
100% |
| leaveRoom still calls leaveChannel |
leaveRoom still calls leaveChannel |
1 |
0 |
0 |
0.045s |
100% |
| leaveSeat - non-owner can leave their seat |
leaveSeat - non-owner can leave their seat |
1 |
0 |
0 |
0.043s |
100% |
| leaveSeat - owner cannot leave seat 0 |
leaveSeat - owner cannot leave seat 0 |
1 |
0 |
0 |
0.054s |
100% |
| leaveSeat - sees Loading then Success status |
leaveSeat - sees Loading then Success status |
1 |
0 |
0 |
0.047s |
100% |
| leaveSeat sets error state on failure |
leaveSeat sets error state on failure |
1 |
0 |
0 |
0.080s |
100% |
| leaving seat disables mic instead of leaving channel |
leaving seat disables mic instead of leaving channel |
1 |
0 |
0 |
0.036s |
100% |
| loadMessageSenderUsers - loads users for JOIN message senders |
loadMessageSenderUsers - loads users for JOIN message senders |
1 |
0 |
0 |
0.028s |
100% |
| loadSeatUsers calls batch getUsers instead of individual getUser |
loadSeatUsers calls batch getUsers instead of individual getUser |
1 |
0 |
0 |
0.058s |
100% |
| message filtering - only updates state when messages actually change |
message filtering - only updates state when messages actually change |
1 |
0 |
0 |
0.017s |
100% |
| moveSeat - attendee cannot move |
moveSeat - attendee cannot move |
1 |
0 |
0 |
0.056s |
100% |
| moveSeat - cannot move from owner seat |
moveSeat - cannot move from owner seat |
1 |
0 |
0 |
0.045s |
100% |
| moveSeat - cannot move to owner seat |
moveSeat - cannot move to owner seat |
1 |
0 |
0 |
0.068s |
100% |
| moveSeat - destination occupied triggers swap |
moveSeat - destination occupied triggers swap |
1 |
0 |
0 |
0.048s |
100% |
| moveSeat - host cannot move other host |
moveSeat - host cannot move other host |
1 |
0 |
0 |
0.028s |
100% |
| moveSeat - owner moves attendee succeeds |
moveSeat - owner moves attendee succeeds |
1 |
0 |
0 |
0.039s |
100% |
| moveSeat - swap cannot target owner seat |
moveSeat - swap cannot target owner seat |
1 |
0 |
0 |
0.038s |
100% |
| new invite enqueues InviteReceived notification |
new invite enqueues InviteReceived notification |
1 |
0 |
0 |
0.030s |
100% |
| null room emission sets roomClosed |
null room emission sets roomClosed |
1 |
0 |
0 |
0.039s |
100% |
| null voice error does not overwrite uiState error |
null voice error does not overwrite uiState error |
1 |
0 |
0 |
0.040s |
100% |
| onAudioPermissionResult granted when not seated does not enable mic |
onAudioPermissionResult granted when not seated does not enable mic |
1 |
0 |
0 |
0.019s |
100% |
| onAudioPermissionResult granted when seated enables mic |
onAudioPermissionResult granted when seated enables mic |
1 |
0 |
0 |
0.019s |
100% |
| owner already seated with permission joins voice with mic enabled |
owner already seated with permission joins voice with mic enabled |
1 |
0 |
0 |
0.018s |
100% |
| owner already seated without permission joins but does not auto-enable mic on permission grant |
owner already seated without permission joins but does not auto-enable mic on permission grant |
1 |
0 |
0 |
0.052s |
100% |
| owner-away countdown - owner entering OWNER_AWAY room triggers immediate return |
owner-away countdown - owner entering OWNER_AWAY room triggers immediate return |
1 |
0 |
0 |
0.053s |
100% |
| owner-away countdown - re-emitting same state does not restart job |
owner-away countdown - re-emitting same state does not restart job |
1 |
0 |
0 |
0.058s |
100% |
| ownerReturn - always re-establishes presence even when already in room |
ownerReturn - always re-establishes presence even when already in room |
1 |
0 |
0 |
0.046s |
100% |
| ownerReturn - enables mic when already joined |
ownerReturn - enables mic when already joined |
1 |
0 |
0 |
0.046s |
100% |
| ownerReturn - non-owner cannot return |
ownerReturn - non-owner cannot return |
1 |
0 |
0 |
0.030s |
100% |
| ownerReturn - re-establishes presence when not in room |
ownerReturn - re-establishes presence when not in room |
1 |
0 |
0 |
0.052s |
100% |
| ownerReturn - rejoins voice when not joined |
ownerReturn - rejoins voice when not joined |
1 |
0 |
0 |
0.020s |
100% |
| pending request does NOT enqueue notification for attendee |
pending request does NOT enqueue notification for attendee |
1 |
0 |
0 |
0.021s |
100% |
| pending request enqueues SeatRequestReceived notification for host |
pending request enqueues SeatRequestReceived notification for host |
1 |
0 |
0 |
0.022s |
100% |
| pending request enqueues SeatRequestReceived notification for owner |
pending request enqueues SeatRequestReceived notification for owner |
1 |
0 |
0 |
0.038s |
100% |
| pending requests update panel state |
pending requests update panel state |
1 |
0 |
0 |
0.084s |
100% |
| pendingRequests - filters out requests where user is already seated |
pendingRequests - filters out requests where user is already seated |
1 |
0 |
0 |
0.022s |
100% |
| pendingRequests - filters out requests where user left the room |
pendingRequests - filters out requests where user left the room |
1 |
0 |
0 |
0.032s |
100% |
| pendingRequests - keeps valid requests and filters stale ones |
pendingRequests - keeps valid requests and filters stale ones |
1 |
0 |
0 |
0.074s |
100% |
| pendingRequests - locally approved request is immediately hidden |
pendingRequests - locally approved request is immediately hidden |
1 |
0 |
0 |
0.040s |
100% |
| re-entry skips block check when user already in participantIds |
re-entry skips block check when user already in participantIds |
1 |
0 |
0 |
0.046s |
100% |
| removeAlias error sets error state |
removeAlias error sets error state |
1 |
0 |
0 |
0.019s |
100% |
| removeAlias success removes from state |
removeAlias success removes from state |
1 |
0 |
0 |
0.019s |
100% |
| removeFromSeat - attendee cannot remove anyone |
removeFromSeat - attendee cannot remove anyone |
1 |
0 |
0 |
0.083s |
100% |
| removeFromSeat - cannot remove from owner seat |
removeFromSeat - cannot remove from owner seat |
1 |
0 |
0 |
0.060s |
100% |
| removeFromSeat - empty seat is rejected |
removeFromSeat - empty seat is rejected |
1 |
0 |
0 |
0.037s |
100% |
| removeFromSeat - host cannot remove other host |
removeFromSeat - host cannot remove other host |
1 |
0 |
0 |
0.038s |
100% |
| removeFromSeat - host cannot remove owner |
removeFromSeat - host cannot remove owner |
1 |
0 |
0 |
0.036s |
100% |
| removeFromSeat - owner removes attendee succeeds |
removeFromSeat - owner removes attendee succeeds |
1 |
0 |
0 |
0.024s |
100% |
| removeHost - does not send system message |
removeHost - does not send system message |
1 |
0 |
0 |
0.045s |
100% |
| removeHost - non-owner cannot remove a host |
removeHost - non-owner cannot remove a host |
1 |
0 |
0 |
0.025s |
100% |
| removeHost - owner can remove a host |
removeHost - owner can remove a host |
1 |
0 |
0 |
1.513s |
100% |
| reportUser - error when target user not found |
reportUser - error when target user not found |
1 |
0 |
0 |
0.063s |
100% |
| reportUser - evidence upload failure sets error |
reportUser - evidence upload failure sets error |
1 |
0 |
0 |
0.020s |
100% |
| reportUser - submission failure sets error |
reportUser - submission failure sets error |
1 |
0 |
0 |
0.048s |
100% |
| reportUser - success calls storageRepo and reportRepo |
reportUser - success calls storageRepo and reportRepo |
1 |
0 |
0 |
0.022s |
100% |
| requestSeat sets error state on failure |
requestSeat sets error state on failure |
1 |
0 |
0 |
0.026s |
100% |
| room closing sets roomClosed in state |
room closing sets roomClosed in state |
1 |
0 |
0 |
0.036s |
100% |
| room expiry - countdown not started when room has plenty of time |
room expiry - countdown not started when room has plenty of time |
1 |
0 |
0 |
0.018s |
100% |
| room expiry - does not send system message |
room expiry - does not send system message |
1 |
0 |
0 |
10.051s |
100% |
| room expiry - non-owner does not close room when time expires |
room expiry - non-owner does not close room when time expires |
1 |
0 |
0 |
0.057s |
100% |
| room expiry - owner closes room when time expires |
room expiry - owner closes room when time expires |
1 |
0 |
0 |
0.072s |
100% |
| room expiry - shows countdown when under 5 minutes |
room expiry - shows countdown when under 5 minutes |
1 |
0 |
0 |
10.050s |
100% |
| room expiry - Super Shy owner gets extended duration |
room expiry - Super Shy owner gets extended duration |
1 |
0 |
0 |
0.044s |
100% |
| room expiry - uses economy config duration |
room expiry - uses economy config duration |
1 |
0 |
0 |
0.040s |
100% |
| room expiry countdown - does not start before 5min threshold |
room expiry countdown - does not start before 5min threshold |
1 |
0 |
0 |
0.122s |
100% |
| room expiry countdown - starts within 5min threshold |
room expiry countdown - starts within 5min threshold |
1 |
0 |
0 |
0.018s |
100% |
| seatActionStatus resets to Idle after 1500ms |
seatActionStatus resets to Idle after 1500ms |
1 |
0 |
0 |
0.037s |
100% |
| sendMessage - blank text is ignored |
sendMessage - blank text is ignored |
1 |
0 |
0 |
0.037s |
100% |
| sendMessage - flood protection triggers on rapid messages |
sendMessage - flood protection triggers on rapid messages |
1 |
0 |
0 |
0.050s |
100% |
| sendMessage - non-blank text sends message |
sendMessage - non-blank text sends message |
1 |
0 |
0 |
0.096s |
100% |
| setAlias error sets error state |
setAlias error sets error state |
1 |
0 |
0 |
0.055s |
100% |
| setAlias success updates aliases in state |
setAlias success updates aliases in state |
1 |
0 |
0 |
0.024s |
100% |
| setRoomScreenVisible delegates to roomLifecycleManager |
setRoomScreenVisible delegates to roomLifecycleManager |
1 |
0 |
0 |
0.024s |
100% |
| startEditMessage sets edit state |
startEditMessage sets edit state |
1 |
0 |
0 |
0.029s |
100% |
| superShyDurationHours returns default when no config |
superShyDurationHours returns default when no config |
1 |
0 |
0 |
0.044s |
100% |
| superShyDurationHours uses economy config value |
superShyDurationHours uses economy config value |
1 |
0 |
0 |
0.038s |
100% |
| takeSeat - attendee blocked with error when requireApproval ON |
takeSeat - attendee blocked with error when requireApproval ON |
1 |
0 |
0 |
0.050s |
100% |
| takeSeat - attendee cannot take owner seat |
takeSeat - attendee cannot take owner seat |
1 |
0 |
0 |
0.045s |
100% |
| takeSeat - attendee creates seat request when requireApproval OFF |
takeSeat - attendee creates seat request when requireApproval OFF |
1 |
0 |
0 |
0.025s |
100% |
| takeSeat - attendee request sees Loading then Success status |
takeSeat - attendee request sees Loading then Success status |
1 |
0 |
0 |
0.038s |
100% |
| takeSeat - host blocked when requireApproval is ON |
takeSeat - host blocked when requireApproval is ON |
1 |
0 |
0 |
0.057s |
100% |
| takeSeat - host takes seat when requireApproval is OFF |
takeSeat - host takes seat when requireApproval is OFF |
1 |
0 |
0 |
0.023s |
100% |
| takeSeat - owner cannot take non-owner seat |
takeSeat - owner cannot take non-owner seat |
1 |
0 |
0 |
0.030s |
100% |
| takeSeat - owner sees Loading then Success status |
takeSeat - owner sees Loading then Success status |
1 |
0 |
0 |
0.038s |
100% |
| takeSeat - owner takes seat 0 succeeds |
takeSeat - owner takes seat 0 succeeds |
1 |
0 |
0 |
0.096s |
100% |
| takeSeat - rejects index beyond effectiveSeatCount |
takeSeat - rejects index beyond effectiveSeatCount |
1 |
0 |
0 |
0.043s |
100% |
| takeSeat - repo error sets error and returns to Idle |
takeSeat - repo error sets error and returns to Idle |
1 |
0 |
0 |
0.039s |
100% |
| takeSeat - seat already occupied is rejected |
takeSeat - seat already occupied is rejected |
1 |
0 |
0 |
0.040s |
100% |
| toggleSelfMute - allows mute when voice disconnected |
toggleSelfMute - allows mute when voice disconnected |
1 |
0 |
0 |
0.052s |
100% |
| toggleSelfMute - does not call voiceService on repo error |
toggleSelfMute - does not call voiceService on repo error |
1 |
0 |
0 |
0.040s |
100% |
| toggleSelfMute - only works on own seat |
toggleSelfMute - only works on own seat |
1 |
0 |
0 |
0.056s |
100% |
| toggleSelfMute - rejects unmute when voice not connected |
toggleSelfMute - rejects unmute when voice not connected |
1 |
0 |
0 |
0.028s |
100% |
| toggleSelfMute - sees Loading then Success status |
toggleSelfMute - sees Loading then Success status |
1 |
0 |
0 |
0.026s |
100% |
| toggleSelfMute - toggles on own seat |
toggleSelfMute - toggles on own seat |
1 |
0 |
0 |
0.059s |
100% |
| toggleSelfMute - unmute shows Unmuted message |
toggleSelfMute - unmute shows Unmuted message |
1 |
0 |
0 |
0.017s |
100% |
| unblockUser - error sets error message |
unblockUser - error sets error message |
1 |
0 |
0 |
0.023s |
100% |
| unblockUser - success removes from blocked set |
unblockUser - success removes from blocked set |
1 |
0 |
0 |
0.024s |
100% |
| unmute blocked when voice unavailable - shows correct error |
unmute blocked when voice unavailable - shows correct error |
1 |
0 |
0 |
0.016s |
100% |
| updateFilteredMessages - system messages are included |
updateFilteredMessages - system messages are included |
1 |
0 |
0 |
0.052s |
100% |
| updateFilteredMessages - system messages not filtered after firstJoinTimestamp set |
updateFilteredMessages - system messages not filtered after firstJoinTimestamp set |
1 |
0 |
0 |
0.030s |
100% |
| updateRoomName - host cannot update room name |
updateRoomName - host cannot update room name |
1 |
0 |
0 |
0.041s |
100% |
| updateRoomName - no room does nothing |
updateRoomName - no room does nothing |
1 |
0 |
0 |
0.040s |
100% |
| updateRoomName - non-owner cannot update room name |
updateRoomName - non-owner cannot update room name |
1 |
0 |
0 |
0.054s |
100% |
| updateRoomName - owner can update room name |
updateRoomName - owner can update room name |
1 |
0 |
0 |
0.023s |
100% |
| validation rejections do not show loading status |
validation rejections do not show loading status |
1 |
0 |
0 |
0.018s |
100% |
| voice disconnects mid-session - isVoiceUnavailable becomes true |
voice disconnects mid-session - isVoiceUnavailable becomes true |
1 |
0 |
0 |
0.051s |
100% |
| voice error - room unblocks immediately when voice error arrives |
voice error - room unblocks immediately when voice error arrives |
1 |
0 |
0 |
0.016s |
100% |
| voice error from voice service surfaces in uiState |
voice error from voice service surfaces in uiState |
1 |
0 |
0 |
0.037s |
100% |
| voice reconnects - isVoiceUnavailable clears on CONNECTED |
voice reconnects - isVoiceUnavailable clears on CONNECTED |
1 |
0 |
0 |
0.021s |
100% |
| voice timeout - room unblocks after 10s when voice never connects |
voice timeout - room unblocks after 10s when voice never connects |
1 |
0 |
0 |
0.022s |
100% |