mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
fix: use configured timeout for warning threshold condition
This commit is contained in:
parent
e84ea747b4
commit
d85a5f2d9e
2 changed files with 21 additions and 15 deletions
|
|
@ -467,9 +467,11 @@ describe("Checkpoint functionality", () => {
|
|||
|
||||
// Simulate the condition function that runs inside pWaitFor
|
||||
let warningShown = false
|
||||
const checkpointTimeoutMs = mockTask.checkpointTimeout * 1000 // 15000ms
|
||||
const simulateConditionCheck = (elapsedMs: number) => {
|
||||
// This simulates what happens inside the pWaitFor condition function (lines 85-100)
|
||||
if (!warningShown && elapsedMs >= 5000) {
|
||||
// The warning is shown when elapsed time exceeds the configured timeout
|
||||
if (!warningShown && elapsedMs >= checkpointTimeoutMs) {
|
||||
warningShown = true
|
||||
// This is what the actual code does at line 91-94
|
||||
const provider = mockTask.providerRef.deref()
|
||||
|
|
@ -484,20 +486,20 @@ describe("Checkpoint functionality", () => {
|
|||
return !!mockTask.checkpointService && !!mockTask.checkpointService.isInitialized
|
||||
}
|
||||
|
||||
// Test: At 4 seconds, no warning should be sent
|
||||
expect(simulateConditionCheck(4000)).toBe(false)
|
||||
// Test: At 14 seconds (just under configured timeout of 15s), no warning should be sent
|
||||
expect(simulateConditionCheck(14000)).toBe(false)
|
||||
expect(mockProvider.postMessageToWebview).not.toHaveBeenCalled()
|
||||
|
||||
// Test: At 5 seconds, warning should be sent with configured timeout (15 seconds)
|
||||
expect(simulateConditionCheck(5000)).toBe(false)
|
||||
// Test: At 15 seconds (configured timeout), warning should be sent with configured timeout
|
||||
expect(simulateConditionCheck(15000)).toBe(false)
|
||||
expect(mockProvider.postMessageToWebview).toHaveBeenCalledWith({
|
||||
type: "checkpointInitWarning",
|
||||
checkpointWarning: "Checkpoint initialization is taking longer than 15 seconds...",
|
||||
})
|
||||
|
||||
// Test: At 6 seconds, warning should not be sent again (warningShown is true)
|
||||
// Test: At 16 seconds, warning should not be sent again (warningShown is true)
|
||||
vi.clearAllMocks()
|
||||
expect(simulateConditionCheck(6000)).toBe(false)
|
||||
expect(simulateConditionCheck(16000)).toBe(false)
|
||||
expect(mockProvider.postMessageToWebview).not.toHaveBeenCalled()
|
||||
})
|
||||
|
||||
|
|
@ -559,12 +561,16 @@ describe("Checkpoint functionality", () => {
|
|||
})
|
||||
})
|
||||
|
||||
it("should use WARNING_THRESHOLD_MS constant of 5000ms", () => {
|
||||
// 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 to check elapsed time
|
||||
it("should use configured checkpointTimeout for warning threshold", () => {
|
||||
// The warning threshold now uses the configured checkpointTimeout value
|
||||
// This ensures the warning message matches when it actually appears
|
||||
mockTask.checkpointTimeout = 15
|
||||
const checkpointTimeoutMs = mockTask.checkpointTimeout * 1000
|
||||
expect(checkpointTimeoutMs).toBe(15000)
|
||||
|
||||
mockTask.checkpointTimeout = 30
|
||||
const checkpointTimeoutMs30 = mockTask.checkpointTimeout * 1000
|
||||
expect(checkpointTimeoutMs30).toBe(30000)
|
||||
})
|
||||
|
||||
it("should convert checkpointTimeout to milliseconds", () => {
|
||||
|
|
|
|||
|
|
@ -83,8 +83,8 @@ export async function getCheckpointService(task: Task, { interval = 250 }: { int
|
|||
() => {
|
||||
const elapsed = Date.now() - checkpointInitStartTime
|
||||
|
||||
// Show warning if we're past the threshold and haven't shown it yet
|
||||
if (!warningShown && elapsed >= WARNING_THRESHOLD_MS) {
|
||||
// Show warning if we're past the configured timeout and haven't shown it yet
|
||||
if (!warningShown && elapsed >= checkpointTimeoutMs) {
|
||||
warningShown = true
|
||||
sendCheckpointInitWarn(task, "WAIT_TIMEOUT", task.checkpointTimeout)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue