| 68 | Object.assign(server.config, config); |
| 69 | |
| 70 | const createSocket = (): MockSocket => { |
| 71 | const id = 'c' + sockets.size; |
| 72 | const listeners = new Set<MessageListener>(); |
| 73 | const socket = { |
| 74 | name: 'tinybase', |
| 75 | partySocketOptions: {host: 'localhost:1999', room: 'room1'}, |
| 76 | send: (message: string): void => { |
| 77 | void server.onMessage(message, {id} as any); |
| 78 | }, |
| 79 | addEventListener: (_type: string, listener: MessageListener): void => { |
| 80 | listeners.add(listener); |
| 81 | }, |
| 82 | removeEventListener: (_type: string, listener: MessageListener): void => { |
| 83 | listeners.delete(listener); |
| 84 | }, |
| 85 | receive: (message: string): void => { |
| 86 | listeners.forEach((listener) => |
| 87 | listener({data: message} as MessageEvent), |
| 88 | ); |
| 89 | }, |
| 90 | } as unknown as MockSocket; |
| 91 | sockets.set(id, socket); |
| 92 | return socket; |
| 93 | }; |
| 94 | |
| 95 | return { |
| 96 | storage, |