mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2026-02-04 09:56:47 +00:00
Replaced TestClient-based tests with proper async WebSocket testing using httpx_ws and threaded server pattern. TestClient has event loop issues with WebSocket connections that were causing all tests to fail. Changes: - Rewrote all WebSocket tests to use aconnect_ws from httpx_ws - Added chat_appserver fixture using threaded Uvicorn server - Tests now use separate event loop in server thread - All 6 tests now pass without asyncio/event loop errors - Matches existing pattern from test_transcripts_rtc_ws.py Tests validate: - WebSocket connection and echo behavior - Error handling for non-existent transcripts - Multiple sequential messages - Graceful disconnection - WebVTT context generation - Unknown message type handling Closes fn-1.8 (End-to-end testing)
1.6 KiB
1.6 KiB
fn-1.8 End-to-end testing
Description
Fix WebSocket chat tests to use proper async WebSocket testing approach (matching existing test_transcripts_rtc_ws.py pattern) instead of TestClient which has event loop issues.
Current State
- Backend endpoint implemented:
server/reflector/views/transcripts_chat.py - Frontend components implemented:
useTranscriptChat.ts,TranscriptChatModal.tsx - Integration complete: chat components added to transcript page
- Basic tests exist but fail due to TestClient event loop issues
Acceptance
- All WebSocket chat tests pass using proper async approach (httpx_ws)
- Tests validate: connection, message protocol, context generation, error handling
- Tests use threaded server pattern matching
test_transcripts_rtc_ws.py - No event loop or asyncio errors in test output
Done summary
Fixed WebSocket chat tests by switching from TestClient (which has event loop issues) to proper async testing approach using httpx_ws and threaded server pattern (matching existing test_transcripts_rtc_ws.py).
All 6 tests now pass:
- test_chat_websocket_connection_success: validates WebSocket connection and echo behavior
- test_chat_websocket_nonexistent_transcript: validates error handling for invalid transcript
- test_chat_websocket_multiple_messages: validates handling multiple sequential messages
- test_chat_websocket_disconnect_graceful: validates clean disconnection
- test_chat_websocket_context_generation: validates WebVTT context generation with participants/words
- test_chat_websocket_unknown_message_type: validates echo behavior for unknown message types
Evidence
- Commits:
- Tests:
- PRs: