diff --git a/src/agents/bash-tools.exec-approval-request.test.ts b/src/agents/bash-tools.exec-approval-request.test.ts index 7fba4368d43..163208b6d4f 100644 --- a/src/agents/bash-tools.exec-approval-request.test.ts +++ b/src/agents/bash-tools.exec-approval-request.test.ts @@ -63,8 +63,9 @@ function requireApprovalRequestPayload(callIndex: number): ApprovalRequestPayloa const call = vi.mocked(callGatewayTool).mock.calls[callIndex]; expect(call?.[0]).toBe("exec.approval.request"); const payload = call?.[2]; - expect(typeof payload).toBe("object"); - expect(payload).not.toBeNull(); + if (!payload || typeof payload !== "object") { + throw new Error(`expected approval request payload ${callIndex}`); + } return payload as ApprovalRequestPayload; } diff --git a/src/agents/cli-credentials.test.ts b/src/agents/cli-credentials.test.ts index 208e38847aa..a2db093b4af 100644 --- a/src/agents/cli-credentials.test.ts +++ b/src/agents/cli-credentials.test.ts @@ -67,8 +67,9 @@ function mockClaudeCliCredentialRead() { } function expectFields(value: unknown, expected: Record): void { - expect(value).toBeTypeOf("object"); - expect(value).not.toBeNull(); + if (!value || typeof value !== "object") { + throw new Error("expected fields object"); + } const record = value as Record; for (const [key, expectedValue] of Object.entries(expected)) { expect(record[key], key).toEqual(expectedValue); diff --git a/src/agents/cli-runner.reliability.test.ts b/src/agents/cli-runner.reliability.test.ts index 250143d8e1d..ec263beb787 100644 --- a/src/agents/cli-runner.reliability.test.ts +++ b/src/agents/cli-runner.reliability.test.ts @@ -158,8 +158,9 @@ function buildPreparedContext(params?: { } function requireRecord(value: unknown, label: string): Record { - expect(value, label).toBeTypeOf("object"); - expect(value, label).not.toBeNull(); + if (!value || typeof value !== "object") { + throw new Error(`expected ${label}`); + } return value as Record; } diff --git a/src/agents/sessions-spawn-hooks.test.ts b/src/agents/sessions-spawn-hooks.test.ts index 955bd772e21..f3b3cd3b49e 100644 --- a/src/agents/sessions-spawn-hooks.test.ts +++ b/src/agents/sessions-spawn-hooks.test.ts @@ -55,8 +55,9 @@ function findGatewayRequest(method: string): GatewayRequest | undefined { } function requireRecord(value: unknown, label: string): Record { - expect(value, label).toBeTypeOf("object"); - expect(value, label).not.toBeNull(); + if (!value || typeof value !== "object") { + throw new Error(`expected ${label}`); + } return value as Record; } diff --git a/src/agents/subagent-registry-lifecycle.test.ts b/src/agents/subagent-registry-lifecycle.test.ts index e561abf4631..3bfe61458c0 100644 --- a/src/agents/subagent-registry-lifecycle.test.ts +++ b/src/agents/subagent-registry-lifecycle.test.ts @@ -105,8 +105,9 @@ function createRunEntry(overrides: Partial = {}): SubagentRun } function expectFields(value: unknown, expected: Record): void { - expect(value).toBeTypeOf("object"); - expect(value).not.toBeNull(); + if (!value || typeof value !== "object") { + throw new Error("expected fields object"); + } const record = value as Record; for (const [key, expectedValue] of Object.entries(expected)) { expect(record[key], key).toEqual(expectedValue); @@ -115,8 +116,9 @@ function expectFields(value: unknown, expected: Record): void { function firstCallArg(mock: ReturnType): Record { const [arg] = mock.mock.calls[0] ?? []; - expect(arg).toBeTypeOf("object"); - expect(arg).not.toBeNull(); + if (!arg || typeof arg !== "object") { + throw new Error("expected first call argument object"); + } return arg as Record; } diff --git a/src/agents/subagent-registry.persistence.test.ts b/src/agents/subagent-registry.persistence.test.ts index dc608bfb4d5..4a8df6a2a26 100644 --- a/src/agents/subagent-registry.persistence.test.ts +++ b/src/agents/subagent-registry.persistence.test.ts @@ -47,8 +47,9 @@ vi.mock("./subagent-orphan-recovery.js", () => ({ })); function expectFields(value: unknown, expected: Record): void { - expect(value).toBeTypeOf("object"); - expect(value).not.toBeNull(); + if (!value || typeof value !== "object") { + throw new Error("expected fields object"); + } const record = value as Record; for (const [key, expectedValue] of Object.entries(expected)) { expect(record[key], key).toEqual(expectedValue); diff --git a/src/agents/tools/image-generate-tool.test.ts b/src/agents/tools/image-generate-tool.test.ts index 4e3190dd4e5..60d667cff85 100644 --- a/src/agents/tools/image-generate-tool.test.ts +++ b/src/agents/tools/image-generate-tool.test.ts @@ -962,8 +962,9 @@ describe("createImageGenerateTool", () => { expect(mockCallArg(webMedia.loadWebMedia, 0, "loadWebMedia", 0)).toBe( "media://inbound/reference.png", ); - expect(loadArgs).not.toBeNull(); - expect(typeof loadArgs).toBe("object"); + if (!loadArgs || typeof loadArgs !== "object") { + throw new Error("expected loadWebMedia options"); + } }); it("passes web_fetch SSRF policy to remote reference images", async () => { diff --git a/src/agents/tools/music-generate-background.test.ts b/src/agents/tools/music-generate-background.test.ts index 54743e77bc3..76856cd245f 100644 --- a/src/agents/tools/music-generate-background.test.ts +++ b/src/agents/tools/music-generate-background.test.ts @@ -64,7 +64,6 @@ describe("music generate background helpers", () => { providerId: "google", }); - expect(handle).not.toBeNull(); if (!handle) { throw new Error("Expected music generation task handle"); } diff --git a/src/agents/tools/music-generate-tool.test.ts b/src/agents/tools/music-generate-tool.test.ts index 723bed88099..6d3e9d6fcd3 100644 --- a/src/agents/tools/music-generate-tool.test.ts +++ b/src/agents/tools/music-generate-tool.test.ts @@ -146,8 +146,9 @@ function resetMusicGenerateMocks() { } function detailsOf(result: { details?: unknown }): Record { - expect(typeof result.details).toBe("object"); - expect(result.details).not.toBeNull(); + if (!result.details || typeof result.details !== "object") { + throw new Error("expected result details object"); + } return result.details as Record; } @@ -155,30 +156,34 @@ function generateMusicOptions( callIndex = musicGenerationRuntimeMocks.generateMusic.mock.calls.length - 1, ): Record { const options = musicGenerationRuntimeMocks.generateMusic.mock.calls[callIndex]?.[0]; - expect(typeof options).toBe("object"); - expect(options).not.toBeNull(); + if (!options || typeof options !== "object") { + throw new Error(`expected generateMusic options ${callIndex}`); + } return options as Record; } function taskProgressCall(callIndex = 0): Record { const call = taskExecutorMocks.recordTaskRunProgressByRunId.mock.calls[callIndex]?.[0]; - expect(typeof call).toBe("object"); - expect(call).not.toBeNull(); + if (!call || typeof call !== "object") { + throw new Error(`expected task progress call ${callIndex}`); + } return call as Record; } function taskCompleteCall(callIndex = 0): Record { const call = taskExecutorMocks.completeTaskRunByRunId.mock.calls[callIndex]?.[0]; - expect(typeof call).toBe("object"); - expect(call).not.toBeNull(); + if (!call || typeof call !== "object") { + throw new Error(`expected task complete call ${callIndex}`); + } return call as Record; } function wakeCompletionCall(callIndex = 0): Record { const call = musicGenerateBackgroundMocks.wakeMusicGenerationTaskCompletion.mock.calls[callIndex]?.[0]; - expect(typeof call).toBe("object"); - expect(call).not.toBeNull(); + if (!call || typeof call !== "object") { + throw new Error(`expected wake completion call ${callIndex}`); + } return call as Record; } diff --git a/src/agents/tools/pdf-tool.test.ts b/src/agents/tools/pdf-tool.test.ts index 4dca5ff913c..7b337ec914e 100644 --- a/src/agents/tools/pdf-tool.test.ts +++ b/src/agents/tools/pdf-tool.test.ts @@ -82,8 +82,9 @@ function withDefaultModel(primary: string): OpenClawConfig { } function expectFields(value: unknown, expected: Record): void { - expect(value).toBeTypeOf("object"); - expect(value).not.toBeNull(); + if (!value || typeof value !== "object") { + throw new Error("expected fields object"); + } const record = value as Record; for (const [key, expectedValue] of Object.entries(expected)) { expect(record[key], key).toEqual(expectedValue);