/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import type { RenderResult } from "@testing-library/react"; import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import userStoreInjectable from "../../common/user-store/user-store.injectable"; import type { UserStore } from "../../common/user-store"; import ipcRendererInjectable from "../../renderer/app-paths/get-value-from-registered-channel/ipc-renderer/ipc-renderer.injectable"; describe("preferences - navigation to proxy preferences", () => { let applicationBuilder: ApplicationBuilder; beforeEach(() => { applicationBuilder = getApplicationBuilder(); applicationBuilder.beforeApplicationStart(({ rendererDi }) => { const userStoreStub = { extensionRegistryUrl: { customUrl: "some-custom-url" }, } as unknown as UserStore; rendererDi.override(userStoreInjectable, () => userStoreStub); rendererDi.override(ipcRendererInjectable, () => ({ on: jest.fn(), invoke: jest.fn(), // TODO: replace with proper mocking via the IPC bridge } as never)); }); }); describe("given in preferences, when rendered", () => { let rendered: RenderResult; beforeEach(async () => { applicationBuilder.beforeRender(() => { applicationBuilder.preferences.navigate(); }); rendered = await applicationBuilder.render(); }); it("renders", () => { expect(rendered.container).toMatchSnapshot(); }); it("does not show proxy preferences yet", () => { const page = rendered.queryByTestId("proxy-preferences-page"); expect(page).toBeNull(); }); describe("when navigating to proxy preferences using navigation", () => { beforeEach(() => { applicationBuilder.preferences.navigation.click("proxy"); }); it("renders", () => { expect(rendered.container).toMatchSnapshot(); }); it("shows proxy preferences", () => { const page = rendered.getByTestId("proxy-preferences-page"); expect(page).not.toBeNull(); }); }); }); });