Skip to content

Commit 956b3a2

Browse files
committed
fix(tests): update Task mocks to include messageManager for proper testing
1 parent b2a8b40 commit 956b3a2

File tree

4 files changed

+48
-19
lines changed

4 files changed

+48
-19
lines changed

src/core/checkpoints/__tests__/checkpoint.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { describe, it, expect, vi, beforeEach, afterEach, Mock } from "vitest"
22
import { Task } from "../../task/Task"
33
import { ClineProvider } from "../../webview/ClineProvider"
44
import { checkpointSave, checkpointRestore, checkpointDiff, getCheckpointService } from "../index"
5+
import { MessageManager } from "../../message-manager"
56
import * as vscode from "vscode"
67

78
// Mock vscode
@@ -102,6 +103,7 @@ describe("Checkpoint functionality", () => {
102103
overwriteApiConversationHistory: vi.fn(),
103104
combineMessages: vi.fn().mockReturnValue([]),
104105
}
106+
mockTask.messageManager = new MessageManager(mockTask)
105107

106108
// Update the mock to return our mockCheckpointService
107109
const checkpointsModule = await import("../../../services/checkpoints")

src/core/webview/__tests__/ClineProvider.spec.ts

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { Task, TaskOptions } from "../../task/Task"
2121
import { safeWriteJson } from "../../../utils/safeWriteJson"
2222

2323
import { ClineProvider } from "../ClineProvider"
24+
import { MessageManager } from "../../message-manager"
2425

2526
// Mock setup must come before imports.
2627
vi.mock("../../prompts/sections/custom-instructions")
@@ -208,25 +209,21 @@ vi.mock("../../../integrations/workspace/WorkspaceTracker", () => {
208209
})
209210

210211
vi.mock("../../task/Task", () => ({
211-
Task: vi
212-
.fn()
213-
.mockImplementation(
214-
(_provider, _apiConfiguration, _customInstructions, _diffEnabled, _fuzzyMatchThreshold, _task, taskId) => ({
215-
api: undefined,
216-
abortTask: vi.fn(),
217-
handleWebviewAskResponse: vi.fn(),
218-
clineMessages: [],
219-
apiConversationHistory: [],
220-
overwriteClineMessages: vi.fn(),
221-
overwriteApiConversationHistory: vi.fn(),
222-
getTaskNumber: vi.fn().mockReturnValue(0),
223-
setTaskNumber: vi.fn(),
224-
setParentTask: vi.fn(),
225-
setRootTask: vi.fn(),
226-
taskId: taskId || "test-task-id",
227-
emit: vi.fn(),
228-
}),
229-
),
212+
Task: vi.fn().mockImplementation((options: any) => ({
213+
api: undefined,
214+
abortTask: vi.fn(),
215+
handleWebviewAskResponse: vi.fn(),
216+
clineMessages: [],
217+
apiConversationHistory: [],
218+
overwriteClineMessages: vi.fn(),
219+
overwriteApiConversationHistory: vi.fn(),
220+
getTaskNumber: vi.fn().mockReturnValue(0),
221+
setTaskNumber: vi.fn(),
222+
setParentTask: vi.fn(),
223+
setRootTask: vi.fn(),
224+
taskId: options?.historyItem?.id || "test-task-id",
225+
emit: vi.fn(),
226+
})),
230227
}))
231228

232229
vi.mock("../../../integrations/misc/extract-text", () => ({
@@ -341,6 +338,32 @@ afterAll(() => {
341338
})
342339

343340
describe("ClineProvider", () => {
341+
beforeAll(() => {
342+
vi.mocked(Task).mockImplementation((options: any) => {
343+
const task: any = {
344+
api: undefined,
345+
abortTask: vi.fn(),
346+
handleWebviewAskResponse: vi.fn(),
347+
clineMessages: [],
348+
apiConversationHistory: [],
349+
overwriteClineMessages: vi.fn(),
350+
overwriteApiConversationHistory: vi.fn(),
351+
getTaskNumber: vi.fn().mockReturnValue(0),
352+
setTaskNumber: vi.fn(),
353+
setParentTask: vi.fn(),
354+
setRootTask: vi.fn(),
355+
taskId: options?.historyItem?.id || "test-task-id",
356+
emit: vi.fn(),
357+
}
358+
359+
Object.defineProperty(task, "messageManager", {
360+
get: () => new MessageManager(task),
361+
})
362+
363+
return task
364+
})
365+
})
366+
344367
let defaultTaskOptions: TaskOptions
345368

346369
let provider: ClineProvider

src/core/webview/__tests__/webviewMessageHandler.checkpoint.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { describe, it, expect, vi, beforeEach } from "vitest"
22
import { webviewMessageHandler } from "../webviewMessageHandler"
33
import { saveTaskMessages } from "../../task-persistence"
44
import { handleCheckpointRestoreOperation } from "../checkpointRestoreHandler"
5+
import { MessageManager } from "../../message-manager"
56

67
// Mock dependencies
78
vi.mock("../../task-persistence")
@@ -40,6 +41,7 @@ describe("webviewMessageHandler - checkpoint operations", () => {
4041
overwriteClineMessages: vi.fn(),
4142
overwriteApiConversationHistory: vi.fn(),
4243
}
44+
mockCline.messageManager = new MessageManager(mockCline)
4345

4446
// Setup mock provider
4547
mockProvider = {

src/core/webview/__tests__/webviewMessageHandler.edit.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import { webviewMessageHandler } from "../webviewMessageHandler"
4040
import type { ClineProvider } from "../ClineProvider"
4141
import type { ClineMessage } from "@roo-code/types"
4242
import type { ApiMessage } from "../../task-persistence/apiMessages"
43+
import { MessageManager } from "../../message-manager"
4344

4445
describe("webviewMessageHandler - Edit Message with Timestamp Fallback", () => {
4546
let mockClineProvider: ClineProvider
@@ -57,6 +58,7 @@ describe("webviewMessageHandler - Edit Message with Timestamp Fallback", () => {
5758
overwriteApiConversationHistory: vi.fn(),
5859
handleWebviewAskResponse: vi.fn(),
5960
}
61+
mockCurrentTask.messageManager = new MessageManager(mockCurrentTask)
6062

6163
// Create mock provider
6264
mockClineProvider = {

0 commit comments

Comments
 (0)