From 16c54655d391a0513b2902a56885fdcd1d2e4a4e Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 8 May 2026 19:20:36 +0100 Subject: [PATCH] test: require common deferred callbacks --- src/config/sessions.test.ts | 7 +++++-- src/config/sessions/store-writer.test.ts | 7 +++++-- src/cron/service.rearm-timer-when-running.test.ts | 5 ++++- src/infra/exec-approval-channel-runtime.test.ts | 7 +++++-- src/test-utils/session-state-cleanup.test.ts | 7 +++++-- src/tui/embedded-backend.test.ts | 7 +++++-- 6 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/config/sessions.test.ts b/src/config/sessions.test.ts index 9de3d1d4d4f..ddc6f072dcc 100644 --- a/src/config/sessions.test.ts +++ b/src/config/sessions.test.ts @@ -760,12 +760,15 @@ describe("sessions", () => { }); const createDeferred = () => { - let resolve!: (value: T | PromiseLike) => void; - let reject!: (reason?: unknown) => void; + let resolve: ((value: T | PromiseLike) => void) | undefined; + let reject: ((reason?: unknown) => void) | undefined; const promise = new Promise((res, rej) => { resolve = res; reject = rej; }); + if (!resolve || !reject) { + throw new Error("Expected deferred callbacks to be initialized"); + } return { promise, resolve, reject }; }; const firstStarted = createDeferred(); diff --git a/src/config/sessions/store-writer.test.ts b/src/config/sessions/store-writer.test.ts index f6e91055344..473f40264a0 100644 --- a/src/config/sessions/store-writer.test.ts +++ b/src/config/sessions/store-writer.test.ts @@ -6,12 +6,15 @@ import { } from "./store.js"; const createDeferred = () => { - let resolve!: (value: T | PromiseLike) => void; - let reject!: (reason?: unknown) => void; + let resolve: ((value: T | PromiseLike) => void) | undefined; + let reject: ((reason?: unknown) => void) | undefined; const promise = new Promise((nextResolve, nextReject) => { resolve = nextResolve; reject = nextReject; }); + if (!resolve || !reject) { + throw new Error("Expected deferred callbacks to be initialized"); + } return { promise, resolve, reject }; }; diff --git a/src/cron/service.rearm-timer-when-running.test.ts b/src/cron/service.rearm-timer-when-running.test.ts index 126e994bfe7..83909cb699f 100644 --- a/src/cron/service.rearm-timer-when-running.test.ts +++ b/src/cron/service.rearm-timer-when-running.test.ts @@ -35,10 +35,13 @@ function createDueRecurringJob(params: { } function createDeferred() { - let resolve!: (value: T) => void; + let resolve: ((value: T) => void) | undefined; const promise = new Promise((res) => { resolve = res; }); + if (!resolve) { + throw new Error("Expected deferred resolver to be initialized"); + } return { promise, resolve }; } diff --git a/src/infra/exec-approval-channel-runtime.test.ts b/src/infra/exec-approval-channel-runtime.test.ts index 181eea169cb..ae7fab6af0c 100644 --- a/src/infra/exec-approval-channel-runtime.test.ts +++ b/src/infra/exec-approval-channel-runtime.test.ts @@ -33,12 +33,15 @@ let createExecApprovalChannelRuntime: typeof import("./exec-approval-channel-run let ExecApprovalChannelRuntimeTerminalStartError: typeof import("./exec-approval-channel-runtime.js").ExecApprovalChannelRuntimeTerminalStartError; function createDeferred() { - let resolve!: (value: T | PromiseLike) => void; - let reject!: (reason?: unknown) => void; + let resolve: ((value: T | PromiseLike) => void) | undefined; + let reject: ((reason?: unknown) => void) | undefined; const promise = new Promise((promiseResolve, promiseReject) => { resolve = promiseResolve; reject = promiseReject; }); + if (!resolve || !reject) { + throw new Error("Expected deferred callbacks to be initialized"); + } return { promise, resolve, reject }; } diff --git a/src/test-utils/session-state-cleanup.test.ts b/src/test-utils/session-state-cleanup.test.ts index 79cfd4de925..dbe1d2671d2 100644 --- a/src/test-utils/session-state-cleanup.test.ts +++ b/src/test-utils/session-state-cleanup.test.ts @@ -20,12 +20,15 @@ const drainSessionStoreWriterQueuesMock = vi.hoisted(() => vi.fn(async () => und const drainSessionWriteLockStateMock = vi.hoisted(() => vi.fn(async () => undefined)); function createDeferred() { - let resolve!: (value: T | PromiseLike) => void; - let reject!: (reason?: unknown) => void; + let resolve: ((value: T | PromiseLike) => void) | undefined; + let reject: ((reason?: unknown) => void) | undefined; const promise = new Promise((nextResolve, nextReject) => { resolve = nextResolve; reject = nextReject; }); + if (!resolve || !reject) { + throw new Error("Expected deferred callbacks to be initialized"); + } return { promise, resolve, reject }; } diff --git a/src/tui/embedded-backend.test.ts b/src/tui/embedded-backend.test.ts index ae4963cacdf..f7708c98808 100644 --- a/src/tui/embedded-backend.test.ts +++ b/src/tui/embedded-backend.test.ts @@ -113,12 +113,15 @@ vi.mock("../gateway/server-methods/agent-timestamp.js", () => ({ })); function deferred() { - let resolve!: (value: T) => void; - let reject!: (error?: unknown) => void; + let resolve: ((value: T) => void) | undefined; + let reject: ((error?: unknown) => void) | undefined; const promise = new Promise((res, rej) => { resolve = res; reject = rej; }); + if (!resolve || !reject) { + throw new Error("Expected deferred callbacks to be initialized"); + } return { promise, resolve, reject }; }