diff --git a/ui/litellm-dashboard/src/app/(dashboard)/users/_components/DefaultUserSettings.test.tsx b/ui/litellm-dashboard/src/app/(dashboard)/users/_components/DefaultUserSettings.test.tsx
index 06dafcfcffd..7a60dfbcecd 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/users/_components/DefaultUserSettings.test.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/users/_components/DefaultUserSettings.test.tsx
@@ -150,4 +150,105 @@ describe("DefaultUserSettings", () => {
expect(screen.getByText("Edit Settings")).toBeInTheDocument();
});
+
+ describe("editable fields", () => {
+ const editableSettings = {
+ values: {
+ sso_enabled: false,
+ teams: [],
+ },
+ field_schema: {
+ description: "Default user settings",
+ properties: {
+ sso_enabled: {
+ type: "boolean",
+ description: "Whether SSO is enabled for new users",
+ },
+ teams: {
+ type: "array",
+ description: "Teams",
+ },
+ },
+ },
+ };
+
+ const enterEditMode = async () => {
+ mockGetInternalUserSettings.mockResolvedValue(editableSettings);
+ mockUpdateInternalUserSettings.mockResolvedValue({ settings: {} });
+
+ render();
+
+ await waitFor(() => {
+ expect(screen.getByText("Edit Settings")).toBeInTheDocument();
+ });
+
+ act(() => {
+ fireEvent.click(screen.getByText("Edit Settings"));
+ });
+ };
+
+ const savedPayload = () => mockUpdateInternalUserSettings.mock.calls[0][1] as Record;
+
+ it("sends the toggled value of a boolean field when saving", async () => {
+ await enterEditMode();
+
+ act(() => {
+ fireEvent.click(screen.getByRole("switch"));
+ });
+ act(() => {
+ fireEvent.click(screen.getByText("Save Changes"));
+ });
+
+ await waitFor(() => {
+ expect(mockUpdateInternalUserSettings).toHaveBeenCalled();
+ });
+ expect(savedPayload().sso_enabled).toBe(true);
+ });
+
+ it("sends a team added through the teams editor when saving", async () => {
+ await enterEditMode();
+
+ expect(screen.queryByText("Team 1")).not.toBeInTheDocument();
+
+ act(() => {
+ fireEvent.click(screen.getByText("Add Team"));
+ });
+ expect(screen.getByText("Team 1")).toBeInTheDocument();
+
+ act(() => {
+ fireEvent.change(screen.getByPlaceholderText("Enter team ID"), { target: { value: "team-abc" } });
+ });
+ act(() => {
+ fireEvent.click(screen.getByText("Save Changes"));
+ });
+
+ await waitFor(() => {
+ expect(mockUpdateInternalUserSettings).toHaveBeenCalled();
+ });
+ expect(savedPayload().teams).toEqual([{ team_id: "team-abc", user_role: "user" }]);
+ });
+
+ it("drops a team removed through the teams editor", async () => {
+ await enterEditMode();
+
+ act(() => {
+ fireEvent.click(screen.getByText("Add Team"));
+ });
+ expect(screen.getByText("Team 1")).toBeInTheDocument();
+
+ act(() => {
+ fireEvent.click(screen.getByText("Remove"));
+ });
+ expect(screen.queryByText("Team 1")).not.toBeInTheDocument();
+
+ act(() => {
+ fireEvent.click(screen.getByText("Save Changes"));
+ });
+
+ await waitFor(() => {
+ expect(mockUpdateInternalUserSettings).toHaveBeenCalled();
+ });
+ expect(savedPayload().teams).toEqual([]);
+ });
+ });
});