MCPcopy
hub / github.com/simstudioai/sim / createMockSocket

Function createMockSocket

packages/testing/src/mocks/socket.mock.ts:34–106  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

32 * ```
33 */
34export function createMockSocket(): IMockSocket {
35 const eventHandlers: Record<string, ((...args: any[]) => any)[]> = {}
36
37 const socket = {
38 id: `socket-${generateRandomString(8)}`,
39 connected: true,
40 disconnected: false,
41
42 // Core methods
43 emit: vi.fn((event: string, ..._args: any[]) => {
44 return socket
45 }),
46
47 on: vi.fn((event: string, handler: (...args: any[]) => any) => {
48 if (!eventHandlers[event]) {
49 eventHandlers[event] = []
50 }
51 eventHandlers[event].push(handler)
52 return socket
53 }),
54
55 once: vi.fn((event: string, handler: (...args: any[]) => any) => {
56 if (!eventHandlers[event]) {
57 eventHandlers[event] = []
58 }
59 eventHandlers[event].push(handler)
60 return socket
61 }),
62
63 off: vi.fn((event: string, handler?: (...args: any[]) => any) => {
64 if (handler && eventHandlers[event]) {
65 eventHandlers[event] = eventHandlers[event].filter((h) => h !== handler)
66 } else {
67 delete eventHandlers[event]
68 }
69 return socket
70 }),
71
72 connect: vi.fn(() => {
73 socket.connected = true
74 socket.disconnected = false
75 return socket
76 }),
77
78 disconnect: vi.fn(() => {
79 socket.connected = false
80 socket.disconnected = true
81 return socket
82 }),
83
84 // Room methods
85 join: vi.fn((_room: string) => socket),
86 leave: vi.fn((_room: string) => socket),
87
88 // Utility methods for testing
89 _handlers: eventHandlers,
90
91 _trigger: (event: string, ...args: any[]) => {

Callers

nothing calls this directly

Calls 3

generateRandomStringFunction · 0.90
handlerFunction · 0.50
pushMethod · 0.45

Tested by

no test coverage detected