mirror of
https://github.com/All-Hands-AI/OpenHands.git
synced 2026-01-09 14:57:59 -05:00
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { ws } from "msw";
|
|
import { setupServer } from "msw/node";
|
|
|
|
/**
|
|
* Creates a WebSocket link for MSW testing
|
|
* @param url - WebSocket URL to mock (default: "ws://localhost/events/socket")
|
|
* @returns MSW WebSocket link
|
|
*/
|
|
export const createWebSocketLink = (url = "ws://localhost/events/socket") =>
|
|
ws.link(url);
|
|
|
|
/**
|
|
* Creates and configures an MSW server for WebSocket testing
|
|
* @param wsLink - WebSocket link to use for the server
|
|
* @returns Configured MSW server
|
|
*/
|
|
export const createWebSocketMockServer = (wsLink: ReturnType<typeof ws.link>) =>
|
|
setupServer(
|
|
wsLink.addEventListener("connection", ({ server }) => {
|
|
server.connect();
|
|
}),
|
|
);
|
|
|
|
/**
|
|
* Creates a complete WebSocket testing setup with server and link
|
|
* @param url - WebSocket URL to mock (default: "ws://localhost/events/socket")
|
|
* @returns Object containing the WebSocket link and configured server
|
|
*/
|
|
export const createWebSocketTestSetup = (
|
|
url = "ws://localhost/events/socket",
|
|
) => {
|
|
const wsLink = createWebSocketLink(url);
|
|
const server = createWebSocketMockServer(wsLink);
|
|
|
|
return { wsLink, server };
|
|
};
|
|
|
|
/**
|
|
* Standard WebSocket test setup for conversation WebSocket handler tests
|
|
*/
|
|
export const conversationWebSocketTestSetup = () =>
|
|
createWebSocketTestSetup("ws://localhost/events/socket");
|