From ba5d76a49f72d3d7d0f357c65255568ed983fcc4 Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Wed, 6 Jul 2022 10:20:48 +0300 Subject: [PATCH] Switch to using newer tool for a job Signed-off-by: Janne Savolainen --- ...and-tab-navigation-for-extensions.test.tsx | 136 +++++++++--------- .../test-utils/get-extension-fake.ts | 9 +- 2 files changed, 76 insertions(+), 69 deletions(-) diff --git a/src/behaviours/cluster/sidebar-and-tab-navigation-for-extensions.test.tsx b/src/behaviours/cluster/sidebar-and-tab-navigation-for-extensions.test.tsx index fbfb425fe2..26a2d17c8d 100644 --- a/src/behaviours/cluster/sidebar-and-tab-navigation-for-extensions.test.tsx +++ b/src/behaviours/cluster/sidebar-and-tab-navigation-for-extensions.test.tsx @@ -16,10 +16,9 @@ import readJsonFileInjectable from "../../common/fs/read-json-file.injectable"; import type { DiContainer } from "@ogre-tools/injectable"; import { navigateToRouteInjectionToken } from "../../common/front-end-routing/navigate-to-route-injection-token"; import assert from "assert"; -import type { FakeExtensionData } from "../../renderer/components/test-utils/get-renderer-extension-fake"; -import { getRendererExtensionFakeFor } from "../../renderer/components/test-utils/get-renderer-extension-fake"; import hostedClusterIdInjectable from "../../renderer/cluster-frame-context/hosted-cluster-id.injectable"; import { advanceFakeTime, useFakeTime } from "../../common/test-utils/use-fake-time"; +import { getExtensionFakeFor } from "../../renderer/components/test-utils/get-extension-fake"; // TODO: Make tooltips free of side effects by making it deterministic jest.mock("../../renderer/components/tooltip/withTooltip", () => ({ @@ -51,10 +50,75 @@ describe("cluster - sidebar and tab navigation for extensions", () => { describe("given extension with cluster pages and cluster page menus", () => { beforeEach(() => { - const getRendererExtensionFake = getRendererExtensionFakeFor(applicationBuilder); - const testExtension = getRendererExtensionFake(extensionStubWithSidebarItems); + const getExtensionFake = getExtensionFakeFor(applicationBuilder); - applicationBuilder.extensions.renderer.enable(testExtension); + const testExtension = getExtensionFake({ + id: "some-extension-id", + name: "some-extension-name", + + rendererOptions: { + clusterPages: [ + { + components: { + Page: () => { + throw new Error("should never come here"); + }, + }, + }, + { + id: "some-child-page-id", + + components: { + Page: () =>
Some child page
, + }, + }, + { + id: "some-other-child-page-id", + + components: { + Page: () => ( +
Some other child page
+ ), + }, + }, + ], + + clusterPageMenus: [ + { + id: "some-parent-id", + title: "Parent", + + components: { + Icon: () =>
Some icon
, + }, + }, + + { + id: "some-child-id", + target: { pageId: "some-child-page-id" }, + parentId: "some-parent-id", + title: "Child 1", + + components: { + Icon: null as never, + }, + }, + + { + id: "some-other-child-id", + target: { pageId: "some-other-child-page-id" }, + parentId: "some-parent-id", + title: "Child 2", + + components: { + Icon: null as never, + }, + }, + ], + }, + }); + + applicationBuilder.extensions.enable(testExtension); }); describe("given no state for expanded sidebar items exists, and navigated to child sidebar item, when rendered", () => { @@ -355,65 +419,3 @@ describe("cluster - sidebar and tab navigation for extensions", () => { }); }); }); - -const extensionStubWithSidebarItems: FakeExtensionData = { - id: "some-extension-id", - name: "some-extension-name", - clusterPages: [ - { - components: { - Page: () => { - throw new Error("should never come here"); - }, - }, - }, - { - id: "some-child-page-id", - - components: { - Page: () =>
Some child page
, - }, - }, - { - id: "some-other-child-page-id", - - components: { - Page: () => ( -
Some other child page
- ), - }, - }, - ], - clusterPageMenus: [ - { - id: "some-parent-id", - title: "Parent", - - components: { - Icon: () =>
Some icon
, - }, - }, - - { - id: "some-child-id", - target: { pageId: "some-child-page-id" }, - parentId: "some-parent-id", - title: "Child 1", - - components: { - Icon: null as never, - }, - }, - - { - id: "some-other-child-id", - target: { pageId: "some-other-child-page-id" }, - parentId: "some-parent-id", - title: "Child 2", - - components: { - Icon: null as never, - }, - }, - ], -}; diff --git a/src/renderer/components/test-utils/get-extension-fake.ts b/src/renderer/components/test-utils/get-extension-fake.ts index eb18881455..6237f2a83f 100644 --- a/src/renderer/components/test-utils/get-extension-fake.ts +++ b/src/renderer/components/test-utils/get-extension-fake.ts @@ -20,12 +20,17 @@ import type { DiContainer } from "@ogre-tools/injectable"; export class TestExtensionMain extends LensMainExtension {} export class TestExtensionRenderer extends LensRendererExtension {} -export type GetExtensionFake = (arg: { +export interface FakeExtensionOptions { id: string; name: string; rendererOptions?: Partial; mainOptions?: Partial; -}) => { main: TestExtensionMain; renderer: TestExtensionRenderer }; +} + +export type GetExtensionFake = (arg: FakeExtensionOptions) => { + main: TestExtensionMain; + renderer: TestExtensionRenderer; +}; export const getExtensionFakeFor = (builder: ApplicationBuilder): GetExtensionFake =>