From 80dfa1f3299b92053fcf6619a13f108030f60fc0 Mon Sep 17 00:00:00 2001 From: "sp.wack" <83104063+amanape@users.noreply.github.com> Date: Mon, 13 Jan 2025 21:50:37 +0400 Subject: [PATCH] fix(frontend): Prevent from send a SET API key (#6235) --- .../features/sidebar/sidebar.test.tsx | 25 +++++++++++++++++++ frontend/src/context/settings-context.tsx | 5 ++++ 2 files changed, 30 insertions(+) diff --git a/frontend/__tests__/components/features/sidebar/sidebar.test.tsx b/frontend/__tests__/components/features/sidebar/sidebar.test.tsx index 9d96e7a49bdc1..3b7a2a275ecc0 100644 --- a/frontend/__tests__/components/features/sidebar/sidebar.test.tsx +++ b/frontend/__tests__/components/features/sidebar/sidebar.test.tsx @@ -141,5 +141,30 @@ describe("Sidebar", () => { llm_api_key: undefined, // null or undefined }); }); + + it("should not send the api key if its SET", async () => { + const user = userEvent.setup(); + renderSidebar(); + + const settingsButton = screen.getByTestId("settings-button"); + await user.click(settingsButton); + + const settingsModal = screen.getByTestId("ai-config-modal"); + + const apiKeyInput = within(settingsModal).getByLabelText(/api key/i); + await user.type(apiKeyInput, "SET"); + + const saveButton = within(settingsModal).getByTestId( + "save-settings-button", + ); + await user.click(saveButton); + + expect(saveSettingsSpy).toHaveBeenCalledWith({ + ...MOCK_USER_PREFERENCES.settings, + llm_api_key: undefined, + llm_base_url: undefined, + security_analyzer: undefined, + }); + }); }); }); diff --git a/frontend/src/context/settings-context.tsx b/frontend/src/context/settings-context.tsx index 4b85d2e27784d..bbbaa3ecbbae5 100644 --- a/frontend/src/context/settings-context.tsx +++ b/frontend/src/context/settings-context.tsx @@ -33,6 +33,11 @@ export function SettingsProvider({ children }: SettingsProviderProps) { ...userSettings, ...newSettings, }; + + if (updatedSettings.LLM_API_KEY === "SET") { + delete updatedSettings.LLM_API_KEY; + } + await saveSettings(updatedSettings, { onSuccess: () => { if (!isUpToDate) {