@@ -740,6 +740,7 @@ describe("QmdMemoryManager", () => {
|
740 | 740 | }); |
741 | 741 | |
742 | 742 | it("times out collection bootstrap commands", async () => { |
| 743 | +vi.useFakeTimers(); |
743 | 744 | cfg = { |
744 | 745 | ...cfg, |
745 | 746 | memory: { |
@@ -764,7 +765,15 @@ describe("QmdMemoryManager", () => {
|
764 | 765 | return createMockChild(); |
765 | 766 | }); |
766 | 767 | |
767 | | -const { manager } = await createManager({ mode: "full" }); |
| 768 | +const managerPromise = createManager({ mode: "full" }); |
| 769 | +await waitUntil(() => |
| 770 | +spawnMock.mock.calls.some((call: unknown[]) => { |
| 771 | +const args = call[1] as string[]; |
| 772 | +return args[0] === "collection" && args[1] === "list"; |
| 773 | +}), |
| 774 | +); |
| 775 | +await vi.advanceTimersByTimeAsync(15); |
| 776 | +const { manager } = await managerPromise; |
768 | 777 | const status = manager.status(); |
769 | 778 | expect(status.backend).toBe("qmd"); |
770 | 779 | expect(status.requestedProvider).toBe("qmd"); |
@@ -4396,6 +4405,7 @@ describe("QmdMemoryManager", () => {
|
4396 | 4405 | }); |
4397 | 4406 | |
4398 | 4407 | it("retries boot update when qmd reports a retryable lock error", async () => { |
| 4408 | +vi.useFakeTimers(); |
4399 | 4409 | cfg = { |
4400 | 4410 | ...cfg, |
4401 | 4411 | memory: { |
@@ -4429,26 +4439,14 @@ describe("QmdMemoryManager", () => {
|
4429 | 4439 | return createMockChild(); |
4430 | 4440 | }); |
4431 | 4441 | |
4432 | | -const nativeSetTimeout = globalThis.setTimeout; |
4433 | | -const setTimeoutSpy = vi.spyOn(globalThis, "setTimeout").mockImplementation((( |
4434 | | -handler: TimerHandler, |
4435 | | -timeout?: number, |
4436 | | - ...args: unknown[] |
4437 | | -) => { |
4438 | | -if (typeof timeout === "number" && timeout >= 500) { |
4439 | | -return nativeSetTimeout(handler, 1, ...args); |
4440 | | -} |
4441 | | -return nativeSetTimeout(handler, timeout, ...args); |
4442 | | -}) as typeof globalThis.setTimeout); |
4443 | | - |
4444 | | -const { manager } = await createManager({ mode: "full" }); |
| 4442 | +const managerPromise = createManager({ mode: "full" }); |
| 4443 | +await waitUntil(() => updateCalls === 1); |
| 4444 | +await vi.advanceTimersByTimeAsync(500); |
| 4445 | +await waitUntil(() => updateCalls === 2); |
| 4446 | +const { manager } = await managerPromise; |
4445 | 4447 | |
4446 | | -try { |
4447 | | -expect(updateCalls).toBe(2); |
4448 | | -await manager.close(); |
4449 | | -} finally { |
4450 | | -setTimeoutSpy.mockRestore(); |
4451 | | -} |
| 4448 | +expect(updateCalls).toBe(2); |
| 4449 | +await manager.close(); |
4452 | 4450 | }); |
4453 | 4451 | |
4454 | 4452 | it("succeeds on qmd update even when stdout exceeds the output cap", async () => { |
|