release: WRNexusJS 0.8.0
Quality / quality (ubuntu-latest) (push) Failing after 21s
Quality / quality (windows-latest) (push) Canceled after 0s

This commit is contained in:
2026-08-02 23:18:51 +05:30
parent 87507edf59
commit 586a6db8ff
625 changed files with 243608 additions and 11210 deletions
+40
View File
@@ -31,3 +31,43 @@ test("bounds writes queued while Redis is unavailable", () => {
expect(() => driver.publish("topic", "overflow")).toThrow("queue is full");
driver.close();
});
test("validates reconnect and backpressure options", () => {
bun.connect = (() => new Promise(() => {})) as typeof bun.connect;
expect(() => redisDriver(undefined, { maxPending: 0 })).toThrow("maxPending");
expect(() => redisDriver(undefined, { reconnectDelayMs: 20, reconnectMaxDelayMs: 10 })).toThrow(
"reconnectMaxDelayMs",
);
});
test("reconnects and replays subscriptions after a socket closes", async () => {
const connections: Array<Record<string, any>> = [];
bun.connect = ((options: Record<string, any>) => {
connections.push(options);
return Promise.resolve({});
}) as typeof bun.connect;
const driver = redisDriver("redis://localhost:6379", {
reconnectDelayMs: 1,
reconnectMaxDelayMs: 1,
});
expect(connections).toHaveLength(2);
const firstWrites: string[] = [];
connections[0].socket.open({
write: (bytes: Uint8Array) => firstWrites.push(new TextDecoder().decode(bytes)),
end() {},
});
driver.subscribe("order:*", () => {});
expect(firstWrites.some((write) => write.includes("PSUBSCRIBE"))).toBe(true);
connections[0].socket.close();
await new Promise((resolve) => setTimeout(resolve, 10));
expect(connections.length).toBeGreaterThanOrEqual(3);
const replayed: string[] = [];
connections[2].socket.open({
write: (bytes: Uint8Array) => replayed.push(new TextDecoder().decode(bytes)),
end() {},
});
expect(replayed.some((write) => write.includes("PSUBSCRIBE"))).toBe(true);
driver.close();
});