diff --git a/src/settings/DeveloperSettingsTab.test.tsx b/src/settings/DeveloperSettingsTab.test.tsx index 77ea81d6..da7f75b8 100644 --- a/src/settings/DeveloperSettingsTab.test.tsx +++ b/src/settings/DeveloperSettingsTab.test.tsx @@ -14,7 +14,11 @@ import type { MatrixClient } from "matrix-js-sdk"; import type { Room as LivekitRoom } from "livekit-client"; import { DeveloperSettingsTab } from "./DeveloperSettingsTab"; import { getSFUConfigWithOpenID } from "../livekit/openIDSFU"; -import { customLivekitUrl as customLivekitUrlSetting } from "./settings"; +import { + customLivekitUrl as customLivekitUrlSetting, + enableExtendedLivekitLogs as enableExtendedLivekitLogsSetting, +} from "./settings"; + // Mock url params hook to avoid environment-dependent snapshot churn. vi.mock("../UrlParams", () => ({ useUrlParams: (): { mocked: boolean; answer: number } => ({ @@ -248,4 +252,63 @@ describe("DeveloperSettingsTab", () => { expect(customLivekitUrlSetting.getValue()).toBe(null); }); }); + + // Add this test inside the describe("DeveloperSettingsTab", () => { block, + // after the custom livekit url tests: + + describe("enable extended livekit logs", () => { + afterEach(() => { + enableExtendedLivekitLogsSetting.setValue(false); + }); + + it("toggles extended livekit logs setting", async () => { + const user = userEvent.setup(); + const client = createMockMatrixClient(); + + render( + + + , + ); + + const checkbox = screen.getByLabelText("Enable extended livekit logs"); + + // Initial state should be unchecked (default false) + expect(checkbox).not.toBeChecked(); + expect(enableExtendedLivekitLogsSetting.getValue()).toBe(false); + + // Click to enable + await user.click(checkbox); + expect(checkbox).toBeChecked(); + expect(enableExtendedLivekitLogsSetting.getValue()).toBe(true); + + // Click to disable + await user.click(checkbox); + expect(checkbox).not.toBeChecked(); + expect(enableExtendedLivekitLogsSetting.getValue()).toBe(false); + }); + + it("reflects the current setting value on render", async () => { + const client = createMockMatrixClient(); + + // Set the value to true before rendering + enableExtendedLivekitLogsSetting.setValue(true); + + render( + + + , + ); + + const checkbox = screen.getByLabelText("Enable extended livekit logs"); + expect(checkbox).toBeChecked(); + expect(enableExtendedLivekitLogsSetting.getValue()).toBe(true); + }); + }); }); diff --git a/src/settings/DeveloperSettingsTab.tsx b/src/settings/DeveloperSettingsTab.tsx index 0db5e2ef..74c878e9 100644 --- a/src/settings/DeveloperSettingsTab.tsx +++ b/src/settings/DeveloperSettingsTab.tsx @@ -230,7 +230,7 @@ export const DeveloperSettingsTab: FC = ({ }, [setAlwaysShowIphoneEarpiece], )} - />{" "} + /> = ({ }, [setEnableExtendedLivekitLogs], )} - />{" "} + /> e.preventDefault()} diff --git a/src/settings/__snapshots__/DeveloperSettingsTab.test.tsx.snap b/src/settings/__snapshots__/DeveloperSettingsTab.test.tsx.snap index 2400a535..36e29d80 100644 --- a/src/settings/__snapshots__/DeveloperSettingsTab.test.tsx.snap +++ b/src/settings/__snapshots__/DeveloperSettingsTab.test.tsx.snap @@ -185,7 +185,6 @@ exports[`DeveloperSettingsTab > renders and matches snapshot 1`] = ` Show iPhone earpiece option on all platforms -
renders and matches snapshot 1`] = ` Enable extended livekit logs
-