diff --git a/ui/litellm-dashboard/src/app/(dashboard)/router-settings/_components/general_settings.integration.test.tsx b/ui/litellm-dashboard/src/app/(dashboard)/router-settings/_components/general_settings.integration.test.tsx index f08c09ded85..cf5cad564ea 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/router-settings/_components/general_settings.integration.test.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/router-settings/_components/general_settings.integration.test.tsx @@ -184,6 +184,31 @@ it("persists a List setting typed as comma-separated text as a trimmed string ar ]); }); +it("clears a stored List setting when Update is clicked on an emptied input", async () => { + vi.mocked(getGeneralSettingsCall).mockResolvedValue([ + { + field_name: "transcribe_media_buckets", + field_type: "List", + field_value: ["old-bucket"], + field_description: "buckets", + stored_in_db: true, + }, + ]); + vi.mocked(updateConfigFieldSetting).mockClear(); + vi.mocked(deleteConfigFieldSetting).mockClear(); + const user = userEvent.setup(); + renderWithProviders(); + await user.click(screen.getByRole("tab", { name: "General" })); + const input = await screen.findByRole("textbox", { name: "transcribe_media_buckets" }); + fireEvent.change(input, { target: { value: " , " } }); + await user.click( + within(screen.getByRole("row", { name: /transcribe_media_buckets/ })).getByRole("button", { name: "Update" }), + ); + expect(vi.mocked(deleteConfigFieldSetting).mock.calls).toEqual([["token", "transcribe_media_buckets"]]); + expect(updateConfigFieldSetting).not.toHaveBeenCalled(); + expect(screen.getByRole("textbox", { name: "transcribe_media_buckets" })).toHaveValue(""); +}); + it("should delete only the Default setting and retain explicit false and zero", async () => { vi.mocked(getGeneralSettingsCall).mockResolvedValue([ { diff --git a/ui/litellm-dashboard/src/app/(dashboard)/router-settings/_components/general_settings.tsx b/ui/litellm-dashboard/src/app/(dashboard)/router-settings/_components/general_settings.tsx index 9aa79b36a98..3d0a2e438ac 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/router-settings/_components/general_settings.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/router-settings/_components/general_settings.tsx @@ -249,7 +249,7 @@ const GeneralSettings: React.FC = ({ accessToken, user const fieldValue = setting?.field_value; if (fieldValue == null) { - if (setting?.field_type === "Select") handleResetField(fieldName); + if (setting?.field_type === "Select" || setting?.field_type === "List") handleResetField(fieldName); return; } try {