Skip to content

Commit d1bbaf4

Browse files
author
daewoongoh
committed
test: cover every reset-only key in updateProfileModel
Only reasoningEffort was verified to clear on null, so dropping another key from PROFILE_MODEL_RESET_ONLY_KEYS would have gone unnoticed.
1 parent 7612ef0 commit d1bbaf4

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,31 @@ describe("ClineProvider - API Handler Rebuild Guard", () => {
463463
expect(saved).not.toHaveProperty("name")
464464
})
465465

466+
test.each([
467+
["reasoningEffort", "high"],
468+
["modelMaxTokens", 4096],
469+
["modelMaxThinkingTokens", 2048],
470+
["awsCustomArn", "arn:aws:bedrock:us-east-1:123456789012:inference-profile/old"],
471+
["awsCustomArnBaseModelId", "anthropic.claude-3-sonnet-20240229-v1:0"],
472+
["awsModelContextWindow", 200000],
473+
])("clears the reset-only key %s when the patch sets it to null", async (key, storedValue) => {
474+
provider["providerSettingsManager"].getProfile = vi
475+
.fn()
476+
.mockResolvedValue({ ...storedProfile, [key]: storedValue })
477+
478+
await provider.updateProfileModel("test-config", providerIdentifiers.openrouter, {
479+
openRouterModelId: "anthropic/claude",
480+
[key]: null,
481+
})
482+
483+
const saveConfig = vi.mocked(provider["providerSettingsManager"].saveConfig)
484+
expect(vscode.window.showErrorMessage).not.toHaveBeenCalled()
485+
expect(saveConfig).toHaveBeenCalledTimes(1)
486+
const saved = saveConfig.mock.calls[0][1]
487+
expect(saved).toMatchObject({ openRouterModelId: "anthropic/claude" })
488+
expect(saved).not.toHaveProperty(key)
489+
})
490+
466491
test("rebuilds the current task API handler with the new model", async () => {
467492
const mockTask = new Task({ ...defaultTaskOptions })
468493
mockTask.api = {

0 commit comments

Comments
 (0)