From 13f1d6f7f3b0121216b3ce13b0cc542c369f5d51 Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Fri, 14 Apr 2023 08:47:06 +0300 Subject: [PATCH] chore: Adapt to injectable feature-wrappers Signed-off-by: Janne Savolainen --- .../keyboard-shortcuts/package.json | 1 + .../keyboard-shortcuts/src/feature.ts | 3 ++- .../src/keyboard-shortcuts.test.tsx | 5 ----- packages/core/package.json | 1 + packages/core/src/main/getDiForUnitTesting.ts | 11 +++++++---- packages/core/src/renderer/getDiForUnitTesting.tsx | 13 ++++++++----- packages/open-lens/package.json | 1 + packages/open-lens/src/main/index.ts | 12 ++++++++---- packages/open-lens/src/renderer/index.ts | 7 +++---- .../messaging/agnostic/package.json | 1 + .../agnostic/src/features/actual/feature.ts | 3 ++- .../agnostic/src/listening-of-messages.test.ts | 3 --- .../agnostic/src/listening-of-requests.test.ts | 3 --- .../src/computed-channel/computed-channel.test.tsx | 3 --- .../enlist-message-channel-listener.test.ts | 5 ++++- .../enlist-request-channel-listener.test.ts | 5 ++++- .../electron/main/src/ipc-main/ipc-main.test.ts | 5 ++++- .../send-message-to-channel.injectable.test.ts | 5 ++++- .../src/allow-communication-to-iframe.test.ts | 3 --- .../electron/renderer/src/ipc/ipc-renderer.test.ts | 5 ++++- .../enlist-message-channel-listener.test.ts | 5 ++++- .../src/requesting-of-requests/invoke-ipc.test.ts | 5 ++++- .../request-from-channel.test.ts | 7 +++++-- .../sending-of-messages/message-to-channel.test.ts | 7 +++++-- .../src/sending-of-messages/send-to-ipc.test.ts | 5 ++++- .../get-message-bridge-fake.test.ts | 5 ----- .../react-application/package.json | 1 + .../react-application/src/feature.ts | 3 ++- .../src/react-application.test.tsx | 6 ------ 29 files changed, 79 insertions(+), 60 deletions(-) diff --git a/packages/business-features/keyboard-shortcuts/package.json b/packages/business-features/keyboard-shortcuts/package.json index 2a5b4bce07..ea6ef00b6b 100644 --- a/packages/business-features/keyboard-shortcuts/package.json +++ b/packages/business-features/keyboard-shortcuts/package.json @@ -32,6 +32,7 @@ }, "peerDependencies": { "@k8slens/feature-core": "^6.5.0-alpha.0", + "@k8slens/basic-dependency-features": "^1.0.0-alpha.0", "@k8slens/react-application": "^1.0.0-alpha.0", "@ogre-tools/fp": "^15.3.1", "@ogre-tools/injectable": "^15.3.1", diff --git a/packages/business-features/keyboard-shortcuts/src/feature.ts b/packages/business-features/keyboard-shortcuts/src/feature.ts index 32d5f2bc62..99fbeeb70b 100644 --- a/packages/business-features/keyboard-shortcuts/src/feature.ts +++ b/packages/business-features/keyboard-shortcuts/src/feature.ts @@ -1,6 +1,7 @@ import { getFeature } from "@k8slens/feature-core"; import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration"; import { reactApplicationFeature } from "@k8slens/react-application"; +import { injectableMobXFeature, injectableReactFeature } from "@k8slens/basic-dependency-features"; export const keyboardShortcutsFeature = getFeature({ id: "keyboard-shortcuts", @@ -13,5 +14,5 @@ export const keyboardShortcutsFeature = getFeature({ }); }, - dependencies: [reactApplicationFeature], + dependencies: [injectableReactFeature, injectableMobXFeature, reactApplicationFeature], }); diff --git a/packages/business-features/keyboard-shortcuts/src/keyboard-shortcuts.test.tsx b/packages/business-features/keyboard-shortcuts/src/keyboard-shortcuts.test.tsx index 3631a4fa98..b816a97dfc 100644 --- a/packages/business-features/keyboard-shortcuts/src/keyboard-shortcuts.test.tsx +++ b/packages/business-features/keyboard-shortcuts/src/keyboard-shortcuts.test.tsx @@ -2,8 +2,6 @@ import userEvent from "@testing-library/user-event"; import type { RenderResult } from "@testing-library/react"; import { render } from "@testing-library/react"; import { createContainer, DiContainer, getInjectable } from "@ogre-tools/injectable"; -import { registerInjectableReact } from "@ogre-tools/injectable-react"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { keyboardShortcutInjectionToken } from "./keyboard-shortcut-injection-token"; import { registerFeature } from "@k8slens/feature-core"; import { keyboardShortcutsFeature } from "./feature"; @@ -24,9 +22,6 @@ describe("keyboard-shortcuts", () => { beforeEach(() => { di = createContainer("irrelevant"); - registerInjectableReact(di); - registerMobX(di); - runInAction(() => { registerFeature(di, keyboardShortcutsFeature); }); diff --git a/packages/core/package.json b/packages/core/package.json index fe013aa861..3383478234 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -312,6 +312,7 @@ "peerDependencies": { "@k8slens/application": "^6.5.0-alpha.0", "@k8slens/application-for-electron-main": "^6.5.0-alpha.0", + "@k8slens/basic-dependency-features": "^1.0.0-alpha.0", "@k8slens/cluster-settings": "^6.5.0-alpha.1", "@k8slens/dock": "^1.0.0-alpha.0", "@k8slens/kubectl-versions": "^1.0.0-alpha.0", diff --git a/packages/core/src/main/getDiForUnitTesting.ts b/packages/core/src/main/getDiForUnitTesting.ts index d128bb901c..5a3a9f4ea3 100644 --- a/packages/core/src/main/getDiForUnitTesting.ts +++ b/packages/core/src/main/getDiForUnitTesting.ts @@ -25,9 +25,9 @@ import initializeClusterManagerInjectable from "./cluster/initialize-manager.inj import type { GlobalOverride } from "@k8slens/test-utils"; import { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes"; import { setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { registerFeature } from "@k8slens/feature-core"; import { messagingFeature, testUtils as messagingTestUtils } from "@k8slens/messaging"; +import { injectableMobXFeature } from "@k8slens/basic-dependency-features"; export function getDiForUnitTesting() { const environment = "main"; @@ -35,12 +35,15 @@ export function getDiForUnitTesting() { detectCycles: false, }); - registerMobX(di); setLegacyGlobalDiForExtensionApi(di, environment); runInAction(() => { - registerFeature(di, messagingFeature, messagingTestUtils.messagingFeatureForUnitTesting); - + registerFeature( + di, + injectableMobXFeature, + messagingFeature, + messagingTestUtils.messagingFeatureForUnitTesting, + ); }); di.preventSideEffects(); diff --git a/packages/core/src/renderer/getDiForUnitTesting.tsx b/packages/core/src/renderer/getDiForUnitTesting.tsx index ff87ceafbd..091c86a6f7 100644 --- a/packages/core/src/renderer/getDiForUnitTesting.tsx +++ b/packages/core/src/renderer/getDiForUnitTesting.tsx @@ -15,10 +15,9 @@ import watchHistoryStateInjectable from "./remote-helpers/watch-history-state.in import legacyOnChannelListenInjectable from "./ipc/legacy-channel-listen.injectable"; import type { GlobalOverride } from "@k8slens/test-utils"; import { setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; -import { registerInjectableReact } from "@ogre-tools/injectable-react"; import { registerFeature } from "@k8slens/feature-core"; import { messagingFeature, testUtils as messagingTestUtils } from "@k8slens/messaging"; +import { injectableReactFeature, injectableMobXFeature } from "@k8slens/basic-dependency-features"; export const getDiForUnitTesting = () => { const environment = "renderer"; @@ -26,12 +25,16 @@ export const getDiForUnitTesting = () => { detectCycles: false, }); - registerMobX(di); - registerInjectableReact(di); setLegacyGlobalDiForExtensionApi(di, environment); runInAction(() => { - registerFeature(di, messagingFeature, messagingTestUtils.messagingFeatureForUnitTesting); + registerFeature( + di, + injectableReactFeature, + injectableMobXFeature, + messagingFeature, + messagingTestUtils.messagingFeatureForUnitTesting + ); }); di.preventSideEffects(); diff --git a/packages/open-lens/package.json b/packages/open-lens/package.json index 31e0128182..ecdd401494 100644 --- a/packages/open-lens/package.json +++ b/packages/open-lens/package.json @@ -190,6 +190,7 @@ "@k8slens/core": "^6.5.0-alpha.6", "@k8slens/ensure-binaries": "^6.5.0-alpha.2", "@k8slens/feature-core": "^6.5.0-alpha.2", + "@k8slens/basic-dependency-features": "^1.0.0-alpha.0", "@k8slens/keyboard-shortcuts": "^1.0.0-alpha.2", "@k8slens/kubectl-versions": "^1.0.0-alpha.0", "@k8slens/legacy-extension-example": "^1.0.0-alpha.4", diff --git a/packages/open-lens/src/main/index.ts b/packages/open-lens/src/main/index.ts index 21d668392f..629c14d4e0 100644 --- a/packages/open-lens/src/main/index.ts +++ b/packages/open-lens/src/main/index.ts @@ -6,11 +6,11 @@ import { registerLensCore, } from "@k8slens/core/main"; import { createContainer } from "@ogre-tools/injectable"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { registerFeature } from "@k8slens/feature-core"; import { applicationFeature, startApplicationInjectionToken } from '@k8slens/application' import { applicationFeatureForElectronMain } from '@k8slens/application-for-electron-main' import { messagingFeatureForMain } from "@k8slens/messaging-for-main"; +import { injectableMobXFeature } from "@k8slens/basic-dependency-features"; const environment = "main"; @@ -18,12 +18,16 @@ const di = createContainer(environment, { detectCycles: false, }); -registerMobX(di); - runInAction(() => { registerLensCore(di, environment); - registerFeature(di, applicationFeature, applicationFeatureForElectronMain, messagingFeatureForMain); + registerFeature( + di, + injectableMobXFeature, + applicationFeature, + applicationFeatureForElectronMain, + messagingFeatureForMain + ); try { autoRegister({ diff --git a/packages/open-lens/src/renderer/index.ts b/packages/open-lens/src/renderer/index.ts index 6a35217eb7..bb9587220f 100644 --- a/packages/open-lens/src/renderer/index.ts +++ b/packages/open-lens/src/renderer/index.ts @@ -13,12 +13,11 @@ import { startApplicationInjectionToken, } from "@k8slens/application"; import { createContainer } from "@ogre-tools/injectable"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; -import { registerInjectableReact } from "@ogre-tools/injectable-react"; import { messagingFeatureForRenderer } from "@k8slens/messaging-for-renderer"; import { keyboardShortcutsFeature } from "@k8slens/keyboard-shortcuts"; import { reactApplicationFeature } from "@k8slens/react-application"; import { dockFeature } from "@k8slens/dock"; +import { injectableReactFeature, injectableMobXFeature } from "@k8slens/basic-dependency-features"; const environment = "renderer"; @@ -27,12 +26,12 @@ const di = createContainer(environment, { }); runInAction(() => { - registerMobX(di); - registerInjectableReact(di); registerLensCore(di, environment); registerFeature( di, + injectableReactFeature, + injectableMobXFeature, applicationFeature, messagingFeatureForRenderer, keyboardShortcutsFeature, diff --git a/packages/technical-features/messaging/agnostic/package.json b/packages/technical-features/messaging/agnostic/package.json index 6411fd9286..9973d1fc57 100644 --- a/packages/technical-features/messaging/agnostic/package.json +++ b/packages/technical-features/messaging/agnostic/package.json @@ -33,6 +33,7 @@ "peerDependencies": { "@k8slens/application": "^6.5.0-alpha.0", "@k8slens/feature-core": "^6.5.0-alpha.0", + "@k8slens/basic-dependency-features": "^1.0.0-alpha.0", "@k8slens/startable-stoppable": "^1.0.0-alpha.1", "@ogre-tools/injectable": "^15.3.1", "@ogre-tools/injectable-extension-for-auto-registration": "^15.3.0", diff --git a/packages/technical-features/messaging/agnostic/src/features/actual/feature.ts b/packages/technical-features/messaging/agnostic/src/features/actual/feature.ts index 5f302e1bcd..055f98332b 100644 --- a/packages/technical-features/messaging/agnostic/src/features/actual/feature.ts +++ b/packages/technical-features/messaging/agnostic/src/features/actual/feature.ts @@ -1,11 +1,12 @@ import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration"; import { applicationFeature } from "@k8slens/application"; import { getFeature } from "@k8slens/feature-core"; +import { injectableMobXFeature } from "@k8slens/basic-dependency-features"; export const messagingFeature = getFeature({ id: "messaging", - dependencies: [applicationFeature], + dependencies: [injectableMobXFeature, applicationFeature], register: (di) => { autoRegister({ diff --git a/packages/technical-features/messaging/agnostic/src/listening-of-messages.test.ts b/packages/technical-features/messaging/agnostic/src/listening-of-messages.test.ts index 8dc25fa41e..f3af3a0f26 100644 --- a/packages/technical-features/messaging/agnostic/src/listening-of-messages.test.ts +++ b/packages/technical-features/messaging/agnostic/src/listening-of-messages.test.ts @@ -1,7 +1,6 @@ import { createContainer, DiContainer, Injectable } from "@ogre-tools/injectable"; import { registerFeature } from "@k8slens/feature-core"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { runInAction } from "mobx"; import { @@ -31,8 +30,6 @@ describe("listening-of-messages", () => { beforeEach(() => { di = createContainer("irrelevant"); - registerMobX(di); - disposeSomeListenerMock = jest.fn(); disposeSomeUnrelatedListenerMock = jest.fn(); diff --git a/packages/technical-features/messaging/agnostic/src/listening-of-requests.test.ts b/packages/technical-features/messaging/agnostic/src/listening-of-requests.test.ts index 6432ac1376..44c53643dc 100644 --- a/packages/technical-features/messaging/agnostic/src/listening-of-requests.test.ts +++ b/packages/technical-features/messaging/agnostic/src/listening-of-requests.test.ts @@ -1,7 +1,6 @@ import { createContainer, DiContainer, Injectable } from "@ogre-tools/injectable"; import { registerFeature } from "@k8slens/feature-core"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { _resetGlobalState, configure, runInAction } from "mobx"; import { @@ -37,8 +36,6 @@ describe("listening-of-requests", () => { di = createContainer("irrelevant"); - registerMobX(di); - disposeSomeListenerMock = jest.fn(); disposeSomeUnrelatedListenerMock = jest.fn(); diff --git a/packages/technical-features/messaging/computed-channel/src/computed-channel/computed-channel.test.tsx b/packages/technical-features/messaging/computed-channel/src/computed-channel/computed-channel.test.tsx index abab064191..1e569620c3 100644 --- a/packages/technical-features/messaging/computed-channel/src/computed-channel/computed-channel.test.tsx +++ b/packages/technical-features/messaging/computed-channel/src/computed-channel/computed-channel.test.tsx @@ -6,7 +6,6 @@ import { startApplicationInjectionToken } from "@k8slens/application"; import { computed, IComputedValue, IObservableValue, observable, reaction, runInAction } from "mobx"; import type { MessageChannel } from "@k8slens/messaging"; import { getMessageChannelListenerInjectable } from "@k8slens/messaging"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { registerFeature } from "@k8slens/feature-core"; import { testUtils } from "@k8slens/messaging"; import { computedChannelInjectionToken, computedChannelObserverInjectionToken } from "./computed-channel.injectable"; @@ -40,8 +39,6 @@ const TestComponent = observer(({ someComputed }: { someComputed: IComputedValue di1 = createContainer("some-container-1"); di2 = createContainer("some-container-2"); - registerMobX(di1); - registerMobX(di2); const administrationChannelTestListenerInjectable = getMessageChannelListenerInjectable({ id: "administration-channel-test-listener", diff --git a/packages/technical-features/messaging/electron/main/src/channel-listeners/enlist-message-channel-listener.test.ts b/packages/technical-features/messaging/electron/main/src/channel-listeners/enlist-message-channel-listener.test.ts index 898efdf3f1..cd49da9aef 100644 --- a/packages/technical-features/messaging/electron/main/src/channel-listeners/enlist-message-channel-listener.test.ts +++ b/packages/technical-features/messaging/electron/main/src/channel-listeners/enlist-message-channel-listener.test.ts @@ -4,6 +4,7 @@ import { EnlistMessageChannelListener, enlistMessageChannelListenerInjectionToke import { createContainer } from "@ogre-tools/injectable"; import { registerFeature } from "@k8slens/feature-core"; import { messagingFeatureForMain } from "../feature"; +import { runInAction } from "mobx"; describe("enlist message channel listener in main", () => { let enlistMessageChannelListener: EnlistMessageChannelListener; @@ -14,7 +15,9 @@ describe("enlist message channel listener in main", () => { beforeEach(() => { const di = createContainer("irrelevant"); - registerFeature(di, messagingFeatureForMain); + runInAction(() => { + registerFeature(di, messagingFeatureForMain); + }); onMock = jest.fn(); offMock = jest.fn(); diff --git a/packages/technical-features/messaging/electron/main/src/channel-listeners/enlist-request-channel-listener.test.ts b/packages/technical-features/messaging/electron/main/src/channel-listeners/enlist-request-channel-listener.test.ts index 68672f4e95..5e9303b29b 100644 --- a/packages/technical-features/messaging/electron/main/src/channel-listeners/enlist-request-channel-listener.test.ts +++ b/packages/technical-features/messaging/electron/main/src/channel-listeners/enlist-request-channel-listener.test.ts @@ -9,6 +9,7 @@ import { getPromiseStatus } from "@k8slens/test-utils"; import { createContainer } from "@ogre-tools/injectable"; import { registerFeature } from "@k8slens/feature-core"; import { messagingFeatureForMain } from "../feature"; +import { runInAction } from "mobx"; type TestRequestChannel = RequestChannel; @@ -25,7 +26,9 @@ describe("enlist request channel listener in main", () => { beforeEach(() => { const di = createContainer("irrelevant"); - registerFeature(di, messagingFeatureForMain); + runInAction(() => { + registerFeature(di, messagingFeatureForMain); + }); handleMock = jest.fn(); offMock = jest.fn(); diff --git a/packages/technical-features/messaging/electron/main/src/ipc-main/ipc-main.test.ts b/packages/technical-features/messaging/electron/main/src/ipc-main/ipc-main.test.ts index 9a3e92c02e..844fece8e6 100644 --- a/packages/technical-features/messaging/electron/main/src/ipc-main/ipc-main.test.ts +++ b/packages/technical-features/messaging/electron/main/src/ipc-main/ipc-main.test.ts @@ -3,6 +3,7 @@ import { registerFeature } from "@k8slens/feature-core"; import ipcMainInjectable from "./ipc-main.injectable"; import { ipcMain } from "electron"; import { messagingFeatureForMain } from "../feature"; +import { runInAction } from "mobx"; describe("ipc-main", () => { let di: DiContainer; @@ -10,7 +11,9 @@ describe("ipc-main", () => { beforeEach(() => { di = createContainer("irrelevant"); - registerFeature(di, messagingFeatureForMain); + runInAction(() => { + registerFeature(di, messagingFeatureForMain); + }); }); it("is the actual IPC-main of Electron", () => { diff --git a/packages/technical-features/messaging/electron/main/src/send-message-to-channel/send-message-to-channel.injectable.test.ts b/packages/technical-features/messaging/electron/main/src/send-message-to-channel/send-message-to-channel.injectable.test.ts index 5c5a486658..df7841039f 100644 --- a/packages/technical-features/messaging/electron/main/src/send-message-to-channel/send-message-to-channel.injectable.test.ts +++ b/packages/technical-features/messaging/electron/main/src/send-message-to-channel/send-message-to-channel.injectable.test.ts @@ -5,6 +5,7 @@ import { getMessageChannel, sendMessageToChannelInjectionToken } from "@k8slens/ import getWebContentsInjectable from "./get-web-contents.injectable"; import type { WebContents } from "electron"; import allowCommunicationListenerInjectable from "./allow-communication-listener.injectable"; +import { runInAction } from "mobx"; const someChannel = getMessageChannel("some-channel"); @@ -14,7 +15,9 @@ describe("send-message-to-channel", () => { beforeEach(() => { di = createContainer("irrelevant"); - registerFeature(di, messagingFeatureForMain); + runInAction(() => { + registerFeature(di, messagingFeatureForMain); + }); }); it("given no web contents, when sending a message, does not do anything", () => { diff --git a/packages/technical-features/messaging/electron/renderer/src/allow-communication-to-iframe.test.ts b/packages/technical-features/messaging/electron/renderer/src/allow-communication-to-iframe.test.ts index 990c6601d9..c21ff7ed75 100644 --- a/packages/technical-features/messaging/electron/renderer/src/allow-communication-to-iframe.test.ts +++ b/packages/technical-features/messaging/electron/renderer/src/allow-communication-to-iframe.test.ts @@ -1,5 +1,4 @@ import { createContainer, DiContainer } from "@ogre-tools/injectable"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { startApplicationInjectionToken } from "@k8slens/application"; import { registerFeature } from "@k8slens/feature-core"; import { messagingFeatureForRenderer } from "./feature"; @@ -15,8 +14,6 @@ describe("allow communication to iframe", () => { beforeEach(() => { di = createContainer("irrelevant"); - registerMobX(di); - runInAction(() => { registerFeature(di, messagingFeatureForRenderer); }); diff --git a/packages/technical-features/messaging/electron/renderer/src/ipc/ipc-renderer.test.ts b/packages/technical-features/messaging/electron/renderer/src/ipc/ipc-renderer.test.ts index e882b5f5aa..d162af444a 100644 --- a/packages/technical-features/messaging/electron/renderer/src/ipc/ipc-renderer.test.ts +++ b/packages/technical-features/messaging/electron/renderer/src/ipc/ipc-renderer.test.ts @@ -3,6 +3,7 @@ import { registerFeature } from "@k8slens/feature-core"; import ipcRendererInjectable from "./ipc-renderer.injectable"; import { messagingFeatureForRenderer } from "../feature"; import { ipcRenderer } from "electron"; +import { runInAction } from "mobx"; describe("ipc-renderer", () => { let di: DiContainer; @@ -10,7 +11,9 @@ describe("ipc-renderer", () => { beforeEach(() => { di = createContainer("irrelevant"); - registerFeature(di, messagingFeatureForRenderer); + runInAction(() => { + registerFeature(di, messagingFeatureForRenderer); + }); }); it("is not undefined", () => { diff --git a/packages/technical-features/messaging/electron/renderer/src/listening-of-messages/enlist-message-channel-listener.test.ts b/packages/technical-features/messaging/electron/renderer/src/listening-of-messages/enlist-message-channel-listener.test.ts index a325821b91..4e9b62d87e 100644 --- a/packages/technical-features/messaging/electron/renderer/src/listening-of-messages/enlist-message-channel-listener.test.ts +++ b/packages/technical-features/messaging/electron/renderer/src/listening-of-messages/enlist-message-channel-listener.test.ts @@ -4,6 +4,7 @@ import { EnlistMessageChannelListener, enlistMessageChannelListenerInjectionToke import { createContainer } from "@ogre-tools/injectable"; import { registerFeature } from "@k8slens/feature-core"; import { messagingFeatureForRenderer } from "../feature"; +import { runInAction } from "mobx"; describe("enlist message channel listener in renderer", () => { let enlistMessageChannelListener: EnlistMessageChannelListener; @@ -14,7 +15,9 @@ describe("enlist message channel listener in renderer", () => { beforeEach(() => { const di = createContainer("irrelevant"); - registerFeature(di, messagingFeatureForRenderer); + runInAction(() => { + registerFeature(di, messagingFeatureForRenderer); + }); onMock = jest.fn(); offMock = jest.fn(); diff --git a/packages/technical-features/messaging/electron/renderer/src/requesting-of-requests/invoke-ipc.test.ts b/packages/technical-features/messaging/electron/renderer/src/requesting-of-requests/invoke-ipc.test.ts index e54c98616b..bbf749e327 100644 --- a/packages/technical-features/messaging/electron/renderer/src/requesting-of-requests/invoke-ipc.test.ts +++ b/packages/technical-features/messaging/electron/renderer/src/requesting-of-requests/invoke-ipc.test.ts @@ -3,6 +3,7 @@ import { registerFeature } from "@k8slens/feature-core"; import { messagingFeatureForRenderer } from "../feature"; import { ipcRenderer } from "electron"; import invokeIpcInjectable from "./invoke-ipc.injectable"; +import { runInAction } from "mobx"; describe("ipc-renderer", () => { let di: DiContainer; @@ -10,7 +11,9 @@ describe("ipc-renderer", () => { beforeEach(() => { di = createContainer("irrelevant"); - registerFeature(di, messagingFeatureForRenderer); + runInAction(() => { + registerFeature(di, messagingFeatureForRenderer); + }); }); it("is IPC-renderer invoke of Electron", () => { diff --git a/packages/technical-features/messaging/electron/renderer/src/requesting-of-requests/request-from-channel.test.ts b/packages/technical-features/messaging/electron/renderer/src/requesting-of-requests/request-from-channel.test.ts index 930040f117..1163435851 100644 --- a/packages/technical-features/messaging/electron/renderer/src/requesting-of-requests/request-from-channel.test.ts +++ b/packages/technical-features/messaging/electron/renderer/src/requesting-of-requests/request-from-channel.test.ts @@ -1,11 +1,12 @@ import { createContainer, DiContainer } from "@ogre-tools/injectable"; import { registerFeature } from "@k8slens/feature-core"; +import type { RequestChannel } from "@k8slens/messaging"; import { requestFromChannelInjectionToken } from "@k8slens/messaging"; import { messagingFeatureForRenderer } from "../feature"; -import type { RequestChannel } from "@k8slens/messaging"; import invokeIpcInjectable from "./invoke-ipc.injectable"; import type { AsyncFnMock } from "@async-fn/jest"; import asyncFn from "@async-fn/jest"; +import { runInAction } from "mobx"; describe("request-from-channel", () => { let di: DiContainer; @@ -14,7 +15,9 @@ describe("request-from-channel", () => { beforeEach(() => { di = createContainer("irrelevant"); - registerFeature(di, messagingFeatureForRenderer); + runInAction(() => { + registerFeature(di, messagingFeatureForRenderer); + }); invokeIpcMock = asyncFn(); di.override(invokeIpcInjectable, () => invokeIpcMock); diff --git a/packages/technical-features/messaging/electron/renderer/src/sending-of-messages/message-to-channel.test.ts b/packages/technical-features/messaging/electron/renderer/src/sending-of-messages/message-to-channel.test.ts index 07989cf16e..d76d5cfc03 100644 --- a/packages/technical-features/messaging/electron/renderer/src/sending-of-messages/message-to-channel.test.ts +++ b/packages/technical-features/messaging/electron/renderer/src/sending-of-messages/message-to-channel.test.ts @@ -1,11 +1,12 @@ import { createContainer, DiContainer } from "@ogre-tools/injectable"; import { registerFeature } from "@k8slens/feature-core"; +import type { MessageChannel } from "@k8slens/messaging"; import { sendMessageToChannelInjectionToken } from "@k8slens/messaging"; import { messagingFeatureForRenderer } from "../feature"; -import type { MessageChannel } from "@k8slens/messaging"; import sendToIpcInjectable from "./send-to-ipc.injectable"; import type { AsyncFnMock } from "@async-fn/jest"; import asyncFn from "@async-fn/jest"; +import { runInAction } from "mobx"; describe("message-from-channel", () => { let di: DiContainer; @@ -14,7 +15,9 @@ describe("message-from-channel", () => { beforeEach(() => { di = createContainer("irrelevant"); - registerFeature(di, messagingFeatureForRenderer); + runInAction(() => { + registerFeature(di, messagingFeatureForRenderer); + }); sendToIpcMock = asyncFn(); di.override(sendToIpcInjectable, () => sendToIpcMock); diff --git a/packages/technical-features/messaging/electron/renderer/src/sending-of-messages/send-to-ipc.test.ts b/packages/technical-features/messaging/electron/renderer/src/sending-of-messages/send-to-ipc.test.ts index 9d1b2303f5..5d7957f59c 100644 --- a/packages/technical-features/messaging/electron/renderer/src/sending-of-messages/send-to-ipc.test.ts +++ b/packages/technical-features/messaging/electron/renderer/src/sending-of-messages/send-to-ipc.test.ts @@ -3,6 +3,7 @@ import { registerFeature } from "@k8slens/feature-core"; import { messagingFeatureForRenderer } from "../feature"; import { ipcRenderer } from "electron"; import sendToIpcInjectable from "./send-to-ipc.injectable"; +import { runInAction } from "mobx"; describe("ipc-renderer", () => { let di: DiContainer; @@ -10,7 +11,9 @@ describe("ipc-renderer", () => { beforeEach(() => { di = createContainer("irrelevant"); - registerFeature(di, messagingFeatureForRenderer); + runInAction(() => { + registerFeature(di, messagingFeatureForRenderer); + }); }); it("is IPC-renderer send of Electron", () => { diff --git a/packages/technical-features/messaging/message-bridge-fake/src/get-message-bridge-fake/get-message-bridge-fake.test.ts b/packages/technical-features/messaging/message-bridge-fake/src/get-message-bridge-fake/get-message-bridge-fake.test.ts index a3a3c86ad3..f8124a6bf3 100644 --- a/packages/technical-features/messaging/message-bridge-fake/src/get-message-bridge-fake/get-message-bridge-fake.test.ts +++ b/packages/technical-features/messaging/message-bridge-fake/src/get-message-bridge-fake/get-message-bridge-fake.test.ts @@ -13,7 +13,6 @@ import { sendMessageToChannelInjectionToken, } from "@k8slens/messaging"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; import { runInAction } from "mobx"; import { getPromiseStatus } from "@k8slens/test-utils"; import { getMessageBridgeFake } from "./get-message-bridge-fake"; @@ -50,10 +49,6 @@ const someRequestChannelWithoutListeners: SomeRequestChannel = { someDiWithoutListeners = createContainer("some-di-3"); - registerMobX(someDi1); - registerMobX(someDi2); - registerMobX(someDiWithoutListeners); - runInAction(() => { const feature = testUtils.messagingFeatureForUnitTesting; diff --git a/packages/technical-features/react-application/package.json b/packages/technical-features/react-application/package.json index 87112f7279..c23da9318f 100644 --- a/packages/technical-features/react-application/package.json +++ b/packages/technical-features/react-application/package.json @@ -32,6 +32,7 @@ }, "peerDependencies": { "@k8slens/application": "^6.5.0-alpha.2", + "@k8slens/basic-dependency-features": "^1.0.0-alpha.0", "@k8slens/feature-core": "^6.5.0-alpha.0", "@ogre-tools/fp": "^15.3.1", "@ogre-tools/injectable": "^15.3.1", diff --git a/packages/technical-features/react-application/src/feature.ts b/packages/technical-features/react-application/src/feature.ts index 96860c90df..414a166aeb 100644 --- a/packages/technical-features/react-application/src/feature.ts +++ b/packages/technical-features/react-application/src/feature.ts @@ -1,6 +1,7 @@ import { getFeature } from "@k8slens/feature-core"; import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration"; import { applicationFeature } from "@k8slens/application"; +import { injectableMobXFeature, injectableReactFeature } from "@k8slens/basic-dependency-features"; export const reactApplicationFeature = getFeature({ id: "react-application", @@ -13,5 +14,5 @@ export const reactApplicationFeature = getFeature({ }); }, - dependencies: [applicationFeature], + dependencies: [injectableReactFeature, injectableMobXFeature, applicationFeature], }); diff --git a/packages/technical-features/react-application/src/react-application.test.tsx b/packages/technical-features/react-application/src/react-application.test.tsx index 12fcdb6bac..c2bfb500b0 100644 --- a/packages/technical-features/react-application/src/react-application.test.tsx +++ b/packages/technical-features/react-application/src/react-application.test.tsx @@ -1,7 +1,5 @@ import { registerFeature } from "@k8slens/feature-core"; import { createContainer, DiContainer, getInjectable } from "@ogre-tools/injectable"; -import { registerMobX } from "@ogre-tools/injectable-extension-for-mobx"; -import { registerInjectableReact } from "@ogre-tools/injectable-react"; import { reactApplicationFeature } from "./feature"; import { runInAction, computed, observable, IObservableValue } from "mobx"; import { startApplicationInjectionToken } from "@k8slens/application"; @@ -26,10 +24,6 @@ describe("react-application", () => { beforeEach(async () => { di = createContainer("some-container"); - registerInjectableReact(di); - - registerMobX(di); - runInAction(() => { registerFeature(di, reactApplicationFeature); });