diff --git a/src/core/checkpoints/__tests__/checkpoint.test.ts b/src/core/checkpoints/__tests__/checkpoint.test.ts index 299ff823b8..1b13706d47 100644 --- a/src/core/checkpoints/__tests__/checkpoint.test.ts +++ b/src/core/checkpoints/__tests__/checkpoint.test.ts @@ -475,7 +475,9 @@ describe("Checkpoint functionality", () => { const provider = mockTask.providerRef.deref() provider?.postMessageToWebview({ type: "checkpointInitWarning", - checkpointWarning: i18nModule.t("common:errors.wait_checkpoint_long_time", { timeout: 5 }), + checkpointWarning: i18nModule.t("common:errors.wait_checkpoint_long_time", { + timeout: mockTask.checkpointTimeout, + }), }) } @@ -486,11 +488,11 @@ describe("Checkpoint functionality", () => { expect(simulateConditionCheck(4000)).toBe(false) expect(mockProvider.postMessageToWebview).not.toHaveBeenCalled() - // Test: At 5 seconds, warning should be sent + // Test: At 5 seconds, warning should be sent with configured timeout (15 seconds) expect(simulateConditionCheck(5000)).toBe(false) expect(mockProvider.postMessageToWebview).toHaveBeenCalledWith({ type: "checkpointInitWarning", - checkpointWarning: "Checkpoint initialization is taking longer than 5 seconds...", + checkpointWarning: "Checkpoint initialization is taking longer than 15 seconds...", }) // Test: At 6 seconds, warning should not be sent again (warningShown is true) @@ -558,10 +560,11 @@ describe("Checkpoint functionality", () => { }) it("should use WARNING_THRESHOLD_MS constant of 5000ms", () => { - // Verify the warning threshold is 5 seconds by checking the implementation + // Verify the warning threshold is 5 seconds - this determines WHEN to show the warning + // but the timeout value shown to user should be the configured checkpointTimeout const WARNING_THRESHOLD_MS = 5000 expect(WARNING_THRESHOLD_MS).toBe(5000) - expect(WARNING_THRESHOLD_MS / 1000).toBe(5) // Used in the i18n call + expect(WARNING_THRESHOLD_MS / 1000).toBe(5) // Used to check elapsed time }) it("should convert checkpointTimeout to milliseconds", () => { @@ -581,11 +584,11 @@ describe("Checkpoint functionality", () => { const i18nModule = await import("../../../i18n") vi.clearAllMocks() - // Test warning message i18n key - const warningMessage = i18nModule.t("common:errors.wait_checkpoint_long_time", { timeout: 5 }) - expect(warningMessage).toBe("Checkpoint initialization is taking longer than 5 seconds...") + // Test warning message i18n key - should use configured timeout + const warningMessage = i18nModule.t("common:errors.wait_checkpoint_long_time", { timeout: 15 }) + expect(warningMessage).toBe("Checkpoint initialization is taking longer than 15 seconds...") - // Test timeout error message i18n key + // Test timeout error message i18n key - should use configured timeout const errorMessage = i18nModule.t("common:errors.init_checkpoint_fail_long_time", { timeout: 30 }) expect(errorMessage).toBe("Checkpoint initialization failed after 30 seconds") }) diff --git a/src/core/checkpoints/index.ts b/src/core/checkpoints/index.ts index 64a8ad1cfe..0b03be15dd 100644 --- a/src/core/checkpoints/index.ts +++ b/src/core/checkpoints/index.ts @@ -86,7 +86,7 @@ export async function getCheckpointService(task: Task, { interval = 250 }: { int // Show warning if we're past the threshold and haven't shown it yet if (!warningShown && elapsed >= WARNING_THRESHOLD_MS) { warningShown = true - sendCheckpointInitWarn(task, "WAIT_TIMEOUT", WARNING_THRESHOLD_MS / 1000) + sendCheckpointInitWarn(task, "WAIT_TIMEOUT", task.checkpointTimeout) } console.log(