Skip to content

Commit ada7c56

Browse files
committed
test(webview): cover the task-local thinking effort state push branch
1 parent 7dde456 commit ada7c56

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

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

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -936,6 +936,33 @@ describe("ClineProvider", () => {
936936
expect(state.taskHistory).toEqual([historyItem])
937937
})
938938

939+
test("getStateToPostToWebview surfaces the task-local thinking effort override (DTE 4/5)", async () => {
940+
const task = (effort: { effort: string; source?: string } | undefined) => ({
941+
taskId: "effort-task",
942+
clineMessages: [],
943+
todoList: [],
944+
getRuntimeThinkingEffort: () => effort,
945+
})
946+
vi.spyOn(provider.taskHistoryStore, "getAll").mockReturnValue([])
947+
const getCurrentTaskSpy = vi.spyOn(provider, "getCurrentTask")
948+
949+
getCurrentTaskSpy.mockReturnValue(task({ effort: "high", source: "you" }) as never)
950+
let state = await provider.getStateToPostToWebview()
951+
expect(state.taskThinkingEffort).toEqual({ effort: "high", source: "you" })
952+
953+
// A source-less runtime override is reported as the default source.
954+
getCurrentTaskSpy.mockReturnValue(task({ effort: "medium" }) as never)
955+
state = await provider.getStateToPostToWebview()
956+
expect(state.taskThinkingEffort).toEqual({ effort: "medium", source: "default" })
957+
958+
// Without an active override the field is omitted.
959+
getCurrentTaskSpy.mockReturnValue(task(undefined) as never)
960+
state = await provider.getStateToPostToWebview()
961+
expect(state.taskThinkingEffort).toBeUndefined()
962+
963+
getCurrentTaskSpy.mockRestore()
964+
})
965+
939966
describe("postStateToWebviewThrottled", () => {
940967
beforeEach(() => {
941968
vi.useFakeTimers()

0 commit comments

Comments
 (0)