Merge #559: range-check the remote-wake readiness budget instead of pinning it to the millisecond

This commit is contained in:
Codeman maintainer
2026-10-09 04:44:53 +02:00
2 changed files with 12 additions and 2 deletions
+6 -1
View File
@@ -559,9 +559,14 @@ describe('RemoteWakeRegistry', () => {
h.registry.ensureAwake(h.session, { force: true, timeoutMs: REMOTE_WAKE_REQUEST_READY_TIMEOUT_MS })
).resolves.toBe(true);
expect(h.waitUntilReady).toHaveBeenCalledWith(remote, {
timeoutMs: REMOTE_WAKE_REQUEST_READY_TIMEOUT_MS,
timeoutMs: expect.any(Number),
signal: expect.any(AbortSignal),
});
// Not asserted to the millisecond: the wake's own elapsed time is subtracted, so a
// slow runner lands a few ms under the budget.
const [, readyOpts] = h.waitUntilReady.mock.calls[0] as [unknown, { timeoutMs: number; signal: AbortSignal }];
expect(readyOpts.timeoutMs).toBeLessThanOrEqual(REMOTE_WAKE_REQUEST_READY_TIMEOUT_MS);
expect(readyOpts.timeoutMs).toBeGreaterThan(REMOTE_WAKE_REQUEST_READY_TIMEOUT_MS - 1_000);
});
});
+6 -1
View File
@@ -2238,10 +2238,15 @@ describe('session-routes', () => {
// The request budget, not the 90 s session default: the reverse proxy would
// cut the request at 60 s while the session was still being built.
expect(wakeWaitUntilReady).toHaveBeenCalledWith(expect.objectContaining({ hostId: 'hufflepuff' }), {
timeoutMs: REMOTE_WAKE_REQUEST_READY_TIMEOUT_MS,
timeoutMs: expect.any(Number),
// The shutdown signal rides along so `WebServer.stop()` can end the poll.
signal: expect.any(AbortSignal),
});
// Not asserted to the millisecond: the wake's own elapsed time is subtracted,
// so a slow runner lands a few ms under the budget.
const [, readyOpts] = wakeWaitUntilReady.mock.calls[0] as unknown as [unknown, { timeoutMs: number }];
expect(readyOpts.timeoutMs).toBeLessThanOrEqual(REMOTE_WAKE_REQUEST_READY_TIMEOUT_MS);
expect(readyOpts.timeoutMs).toBeGreaterThan(REMOTE_WAKE_REQUEST_READY_TIMEOUT_MS - 1_000);
} finally {
startShell.mockRestore();
}