perf(test): fake queue timers and merge telegram reply-mode checks

This commit is contained in:
Peter Steinberger
2026-02-18 16:01:14 +00:00
parent 797a47c3ce
commit c7bc94436b
2 changed files with 67 additions and 78 deletions

View File

@@ -57,16 +57,23 @@ describe("command queue", () => {
return id;
};
const results = await Promise.all([
enqueueCommand(makeTask(1)),
enqueueCommand(makeTask(2)),
enqueueCommand(makeTask(3)),
]);
vi.useFakeTimers();
try {
const resultsPromise = Promise.all([
enqueueCommand(makeTask(1)),
enqueueCommand(makeTask(2)),
enqueueCommand(makeTask(3)),
]);
await vi.advanceTimersByTimeAsync(20);
const results = await resultsPromise;
expect(results).toEqual([1, 2, 3]);
expect(calls).toEqual([1, 2, 3]);
expect(maxActive).toBe(1);
expect(getQueueSize()).toBe(0);
expect(results).toEqual([1, 2, 3]);
expect(calls).toEqual([1, 2, 3]);
expect(maxActive).toBe(1);
expect(getQueueSize()).toBe(0);
} finally {
vi.useRealTimers();
}
});
it("logs enqueue depth after push", async () => {
@@ -82,24 +89,30 @@ describe("command queue", () => {
let waited: number | null = null;
let queuedAhead: number | null = null;
// First task holds the queue long enough to trigger wait notice.
const first = enqueueCommand(async () => {
await new Promise((resolve) => setTimeout(resolve, 8));
});
vi.useFakeTimers();
try {
// First task holds the queue long enough to trigger wait notice.
const first = enqueueCommand(async () => {
await new Promise((resolve) => setTimeout(resolve, 8));
});
const second = enqueueCommand(async () => {}, {
warnAfterMs: 5,
onWait: (ms, ahead) => {
waited = ms;
queuedAhead = ahead;
},
});
const second = enqueueCommand(async () => {}, {
warnAfterMs: 5,
onWait: (ms, ahead) => {
waited = ms;
queuedAhead = ahead;
},
});
await Promise.all([first, second]);
await vi.advanceTimersByTimeAsync(30);
await Promise.all([first, second]);
expect(waited).not.toBeNull();
expect(waited as unknown as number).toBeGreaterThanOrEqual(5);
expect(queuedAhead).toBe(0);
expect(waited).not.toBeNull();
expect(waited as unknown as number).toBeGreaterThanOrEqual(5);
expect(queuedAhead).toBe(0);
} finally {
vi.useRealTimers();
}
});
it("getActiveTaskCount returns count of currently executing tasks", async () => {