| adult viewer sees only adult-owned rooms when batch is mixed |
adult viewer sees only adult-owned rooms when batch is mixed |
1 |
0 |
0 |
0.022s |
100% |
| cancelReplaceRoom dismisses confirmation |
cancelReplaceRoom dismisses confirmation |
1 |
0 |
0 |
0.024s |
100% |
| clearError clears error |
clearError clears error |
1 |
0 |
0 |
0.020s |
100% |
| closed room is excluded from list |
closed room is excluded from list |
1 |
0 |
0 |
0.027s |
100% |
| cohort gate fails closed when viewer User cannot be resolved |
cohort gate fails closed when viewer User cannot be resolved |
1 |
0 |
0 |
0.055s |
100% |
| cohortOverride on viewer is honoured by the gate |
cohortOverride on viewer is honoured by the gate |
1 |
0 |
0 |
0.017s |
100% |
| confirmReplaceRoom closes old rooms then creates new |
confirmReplaceRoom closes old rooms then creates new |
1 |
0 |
0 |
0.044s |
100% |
| confirmReplaceRoom closes the owner rooms with the resolved adult cohort |
confirmReplaceRoom closes the owner rooms with the resolved adult cohort |
1 |
0 |
0 |
0.036s |
100% |
| confirmReplaceRoom fails closed to minor when the viewer cannot be resolved |
confirmReplaceRoom fails closed to minor when the viewer cannot be resolved |
1 |
0 |
0 |
0.038s |
100% |
| createRoom clears previous error before starting |
createRoom clears previous error before starting |
1 |
0 |
0 |
0.038s |
100% |
| createRoom error sets error |
createRoom error sets error |
1 |
0 |
0 |
0.027s |
100% |
| createRoom falls back to minor cohort when user lookup fails |
createRoom falls back to minor cohort when user lookup fails |
1 |
0 |
0 |
0.024s |
100% |
| createRoom honours cohortOverride above cohort field |
createRoom honours cohortOverride above cohort field |
1 |
0 |
0 |
0.034s |
100% |
| createRoom ignores invalid cohortOverride and uses cohort field |
createRoom ignores invalid cohortOverride and uses cohort field |
1 |
0 |
0 |
0.023s |
100% |
| createRoom passes empty ownerFirebaseUid when AuthRepository returns null |
createRoom passes empty ownerFirebaseUid when AuthRepository returns null |
1 |
0 |
0 |
0.031s |
100% |
| createRoom passes Firebase Auth uid as ownerFirebaseUid, not uniqueId |
createRoom passes Firebase Auth uid as ownerFirebaseUid, not uniqueId |
1 |
0 |
0 |
0.020s |
100% |
| createRoom passes minor cohort when user is minor |
createRoom passes minor cohort when user is minor |
1 |
0 |
0 |
0.025s |
100% |
| createRoom persists lastRoomName via updateProfile |
createRoom persists lastRoomName via updateProfile |
1 |
0 |
0 |
0.024s |
100% |
| createRoom proceeds when no active room exists after close |
createRoom proceeds when no active room exists after close |
1 |
0 |
0 |
0.037s |
100% |
| createRoom resolves the cohort for the owner-dedup query |
createRoom resolves the cohort for the owner-dedup query |
1 |
0 |
0 |
0.158s |
100% |
| createRoom shows confirmation when user has active room |
createRoom shows confirmation when user has active room |
1 |
0 |
0 |
0.028s |
100% |
| createRoom stores lastRoomName in state |
createRoom stores lastRoomName in state |
1 |
0 |
0 |
0.017s |
100% |
| createRoom with no existing room creates directly |
createRoom with no existing room creates directly |
1 |
0 |
0 |
0.070s |
100% |
| createRoom with null auth user does nothing |
createRoom with null auth user does nothing |
1 |
0 |
0 |
0.015s |
100% |
| cross-cohort seated user is redacted from seatUsers map |
cross-cohort seated user is redacted from seatUsers map |
1 |
0 |
0 |
0.028s |
100% |
| doCreateRoom uses effectiveCohort with invalid cohort falling back to minor |
doCreateRoom uses effectiveCohort with invalid cohort falling back to minor |
1 |
0 |
0 |
0.030s |
100% |
| empty rooms list shows empty state |
empty rooms list shows empty state |
1 |
0 |
0 |
0.018s |
100% |
| init loads lastRoomName from user profile |
init loads lastRoomName from user profile |
1 |
0 |
0 |
0.021s |
100% |
| isLoading becomes false after rooms emit |
isLoading becomes false after rooms emit |
1 |
0 |
0 |
0.017s |
100% |
| lastRoomName defaults to empty |
lastRoomName defaults to empty |
1 |
0 |
0 |
0.014s |
100% |
| minor viewer drops adult-owned room |
minor viewer drops adult-owned room |
1 |
0 |
0 |
0.026s |
100% |
| multiple rooms with mixed blocked and normal owners |
multiple rooms with mixed blocked and normal owners |
1 |
0 |
0 |
0.024s |
100% |
| normal room is included |
normal room is included |
1 |
0 |
0 |
0.020s |
100% |
| observeRooms falls closed to minor when the viewer cannot be resolved |
observeRooms falls closed to minor when the viewer cannot be resolved |
1 |
0 |
0 |
0.018s |
100% |
| observeRooms flow error sets error state |
observeRooms flow error sets error state |
1 |
0 |
0 |
0.020s |
100% |
| observeRooms requests rooms for the viewer's resolved cohort |
observeRooms requests rooms for the viewer's resolved cohort |
1 |
0 |
0 |
0.018s |
100% |
| onRoomNavigated clears createdRoomId |
onRoomNavigated clears createdRoomId |
1 |
0 |
0 |
0.030s |
100% |
| own room is sorted first |
own room is sorted first |
1 |
0 |
0 |
0.024s |
100% |
| refreshRooms clears user cache and re-fetches users |
refreshRooms clears user cache and re-fetches users |
1 |
0 |
0 |
0.029s |
100% |
| refreshRooms reloads blocked users and re-filters |
refreshRooms reloads blocked users and re-filters |
1 |
0 |
0 |
0.044s |
100% |
| refreshRooms sets isRefreshing false after completion |
refreshRooms sets isRefreshing false after completion |
1 |
0 |
0 |
0.018s |
100% |
| room owned by blocked user is excluded |
room owned by blocked user is excluded |
1 |
0 |
0 |
0.027s |
100% |
| room whose owner blocked current user is excluded |
room whose owner blocked current user is excluded |
1 |
0 |
0 |
0.024s |
100% |
| rooms the user participates in are sorted first |
rooms the user participates in are sorted first |
1 |
0 |
0 |
0.030s |
100% |
| seatUsers map is populated for occupied seats in visible rooms |
seatUsers map is populated for occupied seats in visible rooms |
1 |
0 |
0 |
0.029s |
100% |
| setActive false stops periodic refresh |
setActive false stops periodic refresh |
1 |
0 |
0 |
0.019s |
100% |
| setActive starts periodic refresh |
setActive starts periodic refresh |
1 |
0 |
0 |
0.019s |
100% |
| signOut calls auth signOut |
signOut calls auth signOut |
1 |
0 |
0 |
0.713s |
100% |
| signOut calls authRepository even without rooms |
signOut calls authRepository even without rooms |
1 |
0 |
0 |
0.024s |
100% |
| signOut does not crash when authRepository throws |
signOut does not crash when authRepository throws |
1 |
0 |
0 |
0.019s |
100% |