diff --git a/src/features/application-menu/main/electron-menu-items.injectable.ts b/src/features/application-menu/main/electron-menu-items.injectable.ts deleted file mode 100644 index 024c80be3e..0000000000 --- a/src/features/application-menu/main/electron-menu-items.injectable.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ -import { getInjectable } from "@ogre-tools/injectable"; -import { computed } from "mobx"; -import mainExtensionsInjectable from "../../../extensions/main-extensions.injectable"; - -const electronMenuItemsInjectable = getInjectable({ - id: "electron-menu-items", - - instantiate: (di) => { - const extensions = di.inject(mainExtensionsInjectable); - - return computed(() => - extensions.get().flatMap((extension) => extension.appMenus)); - }, -}); - -export default electronMenuItemsInjectable; diff --git a/src/features/application-menu/main/electron-menu-items.test.ts b/src/features/application-menu/main/electron-menu-items.test.ts deleted file mode 100644 index eb6641d6cd..0000000000 --- a/src/features/application-menu/main/electron-menu-items.test.ts +++ /dev/null @@ -1,116 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ -import type { DiContainer } from "@ogre-tools/injectable"; -import { LensMainExtension } from "../../../extensions/lens-main-extension"; -import electronMenuItemsInjectable from "./electron-menu-items.injectable"; -import type { IComputedValue } from "mobx"; -import { computed, ObservableMap, runInAction } from "mobx"; -import type { MenuRegistration } from "./menu-registration"; -import { getDiForUnitTesting } from "../../../main/getDiForUnitTesting"; -import mainExtensionsInjectable from "../../../extensions/main-extensions.injectable"; - -describe("electron-menu-items", () => { - let di: DiContainer; - let electronMenuItems: IComputedValue; - let extensionsStub: ObservableMap; - - beforeEach(() => { - di = getDiForUnitTesting({ doGeneralOverrides: true }); - - extensionsStub = new ObservableMap(); - - di.override( - mainExtensionsInjectable, - () => computed(() => [...extensionsStub.values()]), - ); - - electronMenuItems = di.inject(electronMenuItemsInjectable); - }); - - it("does not have any items yet", () => { - expect(electronMenuItems.get()).toHaveLength(0); - }); - - describe("when extension is enabled", () => { - beforeEach(() => { - const someExtension = new SomeTestExtension({ - id: "some-extension-id", - appMenus: [{ parentId: "some-parent-id-from-first-extension" }], - }); - - runInAction(() => { - extensionsStub.set("some-extension-id", someExtension); - }); - }); - - it("has menu items", () => { - expect(electronMenuItems.get()).toEqual([ - { - parentId: "some-parent-id-from-first-extension", - }, - ]); - }); - - it("when disabling extension, does not have menu items", () => { - extensionsStub.delete("some-extension-id"); - - expect(electronMenuItems.get()).toHaveLength(0); - }); - - describe("when other extension is enabled", () => { - beforeEach(() => { - const someOtherExtension = new SomeTestExtension({ - id: "some-extension-id", - appMenus: [{ parentId: "some-parent-id-from-second-extension" }], - }); - - extensionsStub.set("some-other-extension-id", someOtherExtension); - }); - - it("has menu items for both extensions", () => { - expect(electronMenuItems.get()).toEqual([ - { - parentId: "some-parent-id-from-first-extension", - }, - - { - parentId: "some-parent-id-from-second-extension", - }, - ]); - }); - - it("when extension is disabled, still returns menu items for extensions that are enabled", () => { - runInAction(() => { - extensionsStub.delete("some-other-extension-id"); - }); - - expect(electronMenuItems.get()).toEqual([ - { - parentId: "some-parent-id-from-first-extension", - }, - ]); - }); - }); - }); -}); - -class SomeTestExtension extends LensMainExtension { - constructor({ id, appMenus }: { - id: string; - appMenus: MenuRegistration[]; - }) { - super({ - id, - absolutePath: "irrelevant", - isBundled: false, - isCompatible: false, - isEnabled: false, - manifest: { name: id, version: "some-version", engines: { lens: "^5.5.0" }}, - manifestPath: "irrelevant", - }); - - this.appMenus = appMenus; - } -}