MCPcopy Index your code
hub / github.com/coder/coder / makeReconnect

Function makeReconnect

site/src/utils/reconnectingWebSocket.test.ts:349–378  ·  view source on GitHub ↗
(random: () => number)

Source from the content-addressed store, hash-verified

347
348 it("preserves jitter spread after raw backoff exceeds maxMs", () => {
349 const makeReconnect = (random: () => number) => {
350 let activeSocket = createMockSocket();
351 const connect = vi.fn(() => {
352 activeSocket = createMockSocket();
353 return activeSocket;
354 });
355 const disconnects: Array<{ reconnect: ReconnectSchedule; now: number }> =
356 [];
357 const onDisconnect = vi.fn((reconnect: ReconnectSchedule) => {
358 disconnects.push({ reconnect, now: Date.now() });
359 });
360
361 createReconnectingWebSocket({
362 connect,
363 onDisconnect,
364 baseMs: 1000,
365 maxMs: 10000,
366 factor: 2,
367 jitter: 0.3,
368 random,
369 });
370
371 for (let i = 0; i < 4; i++) {
372 activeSocket.emit("close");
373 vi.runOnlyPendingTimers();
374 }
375 activeSocket.emit("close");
376
377 return disconnects[4]!;
378 };
379
380 const minReconnect = makeReconnect(() => 0);
381 expectReconnectSchedule(minReconnect, { attempt: 5, delayMs: 7000 });

Callers 1

Calls 4

pushMethod · 0.80
createMockSocketFunction · 0.70
nowMethod · 0.45

Tested by

no test coverage detected