MCPcopy Index your code
hub / github.com/tinyplex/tinybase / createMockEnvironment

Function createMockEnvironment

test/unit/persisters/partykit.test.ts:55–105  ·  view source on GitHub ↗
(
  config: TinyBasePartyKitServerConfig = {},
)

Source from the content-addressed store, hash-verified

53};
54
55const 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
107const createClient = (
108 environment: MockEnvironment,

Callers 1

partykit.test.tsFile · 0.85

Calls 3

onRequestMethod · 0.95
createMockStorageFunction · 0.85
receiveMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…