/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
import React from "react";
import { render, screen } from "jest-matrix-react";
import LabsUserSettingsTab from "../../../../../../../src/components/views/settings/tabs/user/LabsUserSettingsTab";
import SettingsStore from "../../../../../../../src/settings/SettingsStore";
import SdkConfig from "../../../../../../../src/SdkConfig";
describe("", () => {
    const defaultProps = {
        closeSettingsFn: jest.fn(),
    };
    const getComponent = () => ;
    const settingsValueSpy = jest.spyOn(SettingsStore, "getValue");
    beforeEach(() => {
        jest.clearAllMocks();
        settingsValueSpy.mockReturnValue(false);
        SdkConfig.reset();
        SdkConfig.add({ brand: "BrandedClient" });
        localStorage.clear();
    });
    it("renders settings marked as beta as beta cards", () => {
        render(getComponent());
        expect(screen.getByText("Upcoming features").parentElement!).toMatchSnapshot();
    });
    it("does not render non-beta labs settings when disabled in config", () => {
        const sdkConfigSpy = jest.spyOn(SdkConfig, "get");
        render(getComponent());
        expect(sdkConfigSpy).toHaveBeenCalledWith("show_labs_settings");
        // only section is beta section
        expect(screen.queryByText("Early previews")).not.toBeInTheDocument();
    });
    it("renders non-beta labs settings when enabled in config", () => {
        // enable labs
        SdkConfig.add({ show_labs_settings: true });
        const { container } = render(getComponent());
        // non-beta labs section
        expect(screen.getByText("Early previews")).toBeInTheDocument();
        const labsSections = container.getElementsByClassName("mx_SettingsSubsection");
        expect(labsSections).toHaveLength(10);
    });
});