mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
Test Helpers
This directory contains reusable test utilities and components for the OpenHands frontend test suite.
Files
websocket-test-components.tsx
Contains React test components for accessing and displaying WebSocket-related store values:
ConnectionStatusComponent- Displays WebSocket connection stateEventStoreComponent- Displays event store values (events count, UI events count, latest event ID)OptimisticUserMessageStoreComponent- Displays optimistic user message store valuesErrorMessageStoreComponent- Displays error message store values
These components are designed to be used in tests to verify that WebSocket events are properly processed and stored.
msw-websocket-setup.ts
Contains MSW (Mock Service Worker) setup utilities for WebSocket testing:
createWebSocketLink()- Creates a WebSocket link for MSW testingcreateWebSocketMockServer()- Creates and configures an MSW server for WebSocket testingcreateWebSocketTestSetup()- Creates a complete WebSocket testing setupconversationWebSocketTestSetup()- Standard setup for conversation WebSocket handler tests
Usage
import {
ConnectionStatusComponent,
EventStoreComponent,
} from "./__tests__/helpers/websocket-test-components";
import { conversationWebSocketTestSetup } from "./__tests__/helpers/msw-websocket-setup";
// Set up MSW server
const { wsLink, server } = conversationWebSocketTestSetup();
// Render components with WebSocket context (helper function defined in test file)
renderWithWebSocketContext(<ConnectionStatusComponent />);
Benefits
- Reusability: Test components and utilities can be shared across multiple test files
- Maintainability: Changes to test setup only need to be made in one place
- Consistency: Ensures consistent test setup across different WebSocket-related tests
- Readability: Test files are cleaner and focus on test logic rather than setup boilerplate