(
config: TinyBasePartyKitServerConfig = {},
)
| 53 | }; |
| 54 | |
| 55 | const createMockEnvironment = ( |
| 56 | config: TinyBasePartyKitServerConfig = {}, |
| 57 | ): MockEnvironment => { |
| 58 | const storage = createMockStorage(); |
| 59 | const sockets = new Map<string, MockSocket>(); |
| 60 | const party = { |
| 61 | storage, |
| 62 | broadcast: async (message: string, without: string[] = []): Promise<void> => |
| 63 | sockets.forEach((socket, socketId) => |
| 64 | without.includes(socketId) ? 0 : socket.receive(message), |
| 65 | ), |
| 66 | }; |
| 67 | const server = new TinyBasePartyKitServer(party as any); |
| 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, |
| 97 | server, |
| 98 | fetch: async (input: RequestInfo | URL, init?: RequestInit) => { |
| 99 | const request = |
| 100 | input instanceof Request ? input : new Request(String(input), init); |
| 101 | return await server.onRequest(request as any); |
| 102 | }, |
| 103 | createSocket, |
| 104 | }; |
| 105 | }; |
| 106 | |
| 107 | const createClient = ( |
| 108 | environment: MockEnvironment, |
no test coverage detected
searching dependent graphs…