diff --git a/src/auto-reply/reply.queue.test.ts b/src/auto-reply/reply.queue.test.ts index 15078c5e6..331fe6795 100644 --- a/src/auto-reply/reply.queue.test.ts +++ b/src/auto-reply/reply.queue.test.ts @@ -2,6 +2,7 @@ import path from "node:path"; import { afterEach, describe, expect, it, vi } from "vitest"; +import { pollUntil } from "../../test/helpers/poll.js"; import { withTempHome as withTempHomeBase } from "../../test/helpers/temp-home.js"; import { isEmbeddedPiRunActive, @@ -109,7 +110,6 @@ describe("queue followups", () => { }); it("summarizes dropped followups when cap is exceeded", async () => { - vi.useFakeTimers(); await withTempHome(async (home) => { const prompts: string[] = []; vi.mocked(runEmbeddedPiAgent).mockImplementation(async (params) => { @@ -133,8 +133,10 @@ describe("queue followups", () => { vi.mocked(isEmbeddedPiRunActive).mockReturnValue(false); await getReplyFromConfig({ Body: "three", From: "+1002", To: "+2000" }, {}, cfg); - await vi.runAllTimersAsync(); - await Promise.resolve(); + await pollUntil( + async () => (prompts.some((p) => p.includes("[Queue overflow]")) ? true : null), + { timeoutMs: 2000 }, + ); expect(prompts.some((p) => p.includes("[Queue overflow]"))).toBe(true); }); diff --git a/src/infra/bridge/server.enables-keepalive-sockets.test.ts b/src/infra/bridge/server.enables-keepalive-sockets.test.ts index a6720a24a..01491b8e1 100644 --- a/src/infra/bridge/server.enables-keepalive-sockets.test.ts +++ b/src/infra/bridge/server.enables-keepalive-sockets.test.ts @@ -323,6 +323,11 @@ describe("node bridge server", { timeout: suiteTimeoutMs }, () => { resolveDisconnected = resolve; }); + let pendingRequest: { + requestId: string; + nodeId: string; + ts: number; + } | null = null; const server = await startNodeBridgeServer({ host: "127.0.0.1", port: 0, @@ -330,6 +335,13 @@ describe("node bridge server", { timeout: suiteTimeoutMs }, () => { onAuthenticated: async (node) => { lastAuthed = node; }, + onPairRequested: async (request) => { + pendingRequest = { + requestId: request.requestId, + nodeId: request.nodeId, + ts: request.ts, + }; + }, onDisconnected: async (node) => { disconnected = node; resolveDisconnected?.(); @@ -351,13 +363,7 @@ describe("node bridge server", { timeout: suiteTimeoutMs }, () => { }); // Approve the pending request from the gateway side. - const pending = await pollUntil( - async () => { - const list = await listNodePairing(baseDir); - return list.pending.find((p) => p.nodeId === "n4"); - }, - { timeoutMs: pairingTimeoutMs }, - ); + const pending = await pollUntil(async () => pendingRequest, { timeoutMs: pairingTimeoutMs }); expect(pending).toBeTruthy(); if (!pending) throw new Error("expected a pending request"); const approved = await approveNodePairing(pending.requestId, baseDir);