From 50c08def4c1c840f06e4ed8d3fb1cc58d7a623d1 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Wed, 1 Mar 2023 09:59:07 -0500 Subject: [PATCH] Fix unit tests Signed-off-by: Sebastian Malton --- ...nformation-fake.injectable.testing-env.ts} | 0 .../vars/node-env.injectable.testing-env.ts | 14 ++++++++++ packages/core/src/main/getDiForUnitTesting.ts | 28 ++++++------------- .../core/src/renderer/getDiForUnitTesting.tsx | 27 +++++------------- 4 files changed, 29 insertions(+), 40 deletions(-) rename packages/core/src/common/vars/{application-information-fake-injectable.ts => application-information-fake.injectable.testing-env.ts} (100%) create mode 100644 packages/core/src/common/vars/node-env.injectable.testing-env.ts diff --git a/packages/core/src/common/vars/application-information-fake-injectable.ts b/packages/core/src/common/vars/application-information-fake.injectable.testing-env.ts similarity index 100% rename from packages/core/src/common/vars/application-information-fake-injectable.ts rename to packages/core/src/common/vars/application-information-fake.injectable.testing-env.ts diff --git a/packages/core/src/common/vars/node-env.injectable.testing-env.ts b/packages/core/src/common/vars/node-env.injectable.testing-env.ts new file mode 100644 index 0000000000..29231a4010 --- /dev/null +++ b/packages/core/src/common/vars/node-env.injectable.testing-env.ts @@ -0,0 +1,14 @@ +/** + * 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 nodeEnvInjectionToken from "./node-env-injection-token"; + +const nodeEnvFakeInjectable = getInjectable({ + id: "node-env-fake", + instantiate: () => "production", + injectionToken: nodeEnvInjectionToken, +}); + +export default nodeEnvFakeInjectable; diff --git a/packages/core/src/main/getDiForUnitTesting.ts b/packages/core/src/main/getDiForUnitTesting.ts index eb734a7632..1e4c3291b9 100644 --- a/packages/core/src/main/getDiForUnitTesting.ts +++ b/packages/core/src/main/getDiForUnitTesting.ts @@ -4,8 +4,8 @@ */ import { chunk } from "lodash/fp"; -import type { DiContainer, Injectable } from "@ogre-tools/injectable"; -import { isInjectable, getInjectable } from "@ogre-tools/injectable"; +import type { DiContainer } from "@ogre-tools/injectable"; +import { isInjectable } from "@ogre-tools/injectable"; import spawnInjectable from "./child-process/spawn.injectable"; import initializeExtensionsInjectable from "./start-main-application/runnables/initialize-extensions.injectable"; import setupIpcMainHandlersInjectable from "./electron-app/runnables/setup-ipc-main-handlers/setup-ipc-main-handlers.injectable"; @@ -27,9 +27,7 @@ import waitUntilBundledExtensionsAreLoadedInjectable from "./start-main-applicat import electronInjectable from "./utils/resolve-system-proxy/electron.injectable"; import initializeClusterManagerInjectable from "./cluster/initialize-manager.injectable"; import type { GlobalOverride } from "../common/test-utils/get-global-override"; -import nodeEnvInjectionToken from "../common/vars/node-env-injection-token"; import { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes"; -import { applicationInformationFakeInjectable } from "../common/vars/application-information-fake-injectable"; import { getDi } from "./getDi"; export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) { @@ -39,27 +37,17 @@ export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) const di = getDi(); - di.register(getInjectable({ - id: "node-env", - instantiate: () => "production", - injectionToken: nodeEnvInjectionToken, - })); - di.preventSideEffects(); - const injectables = ( - global.injectablePaths.main.paths + runInAction(() => { + const injectables = global.injectablePaths.main.paths .map(path => require(path)) .flatMap(Object.values) - .filter(isInjectable) - ) as Injectable[]; + .filter(isInjectable); - runInAction(() => { - di.register(applicationInformationFakeInjectable); - - chunk(100)(injectables).forEach(chunkInjectables => { - di.register(...chunkInjectables); - }); + for (const block of chunk(100)(injectables)) { + di.register(...block); + } }); if (doGeneralOverrides) { diff --git a/packages/core/src/renderer/getDiForUnitTesting.tsx b/packages/core/src/renderer/getDiForUnitTesting.tsx index 711a0c26a9..e1f6186874 100644 --- a/packages/core/src/renderer/getDiForUnitTesting.tsx +++ b/packages/core/src/renderer/getDiForUnitTesting.tsx @@ -4,8 +4,7 @@ */ import { noop, chunk } from "lodash/fp"; -import type { Injectable } from "@ogre-tools/injectable"; -import { isInjectable, getInjectable } from "@ogre-tools/injectable"; +import { isInjectable } from "@ogre-tools/injectable"; import requestFromChannelInjectable from "./utils/channel/request-from-channel.injectable"; import { getOverrideFsWithFakes } from "../test-utils/override-fs-with-fakes"; import terminalSpawningPoolInjectable from "./components/dock/terminal/terminal-spawning-pool.injectable"; @@ -16,8 +15,6 @@ import startTopbarStateSyncInjectable from "./components/layout/top-bar/start-st import watchHistoryStateInjectable from "./remote-helpers/watch-history-state.injectable"; import legacyOnChannelListenInjectable from "./ipc/legacy-channel-listen.injectable"; import type { GlobalOverride } from "../common/test-utils/get-global-override"; -import nodeEnvInjectionToken from "../common/vars/node-env-injection-token"; -import { applicationInformationFakeInjectable } from "../common/vars/application-information-fake-injectable"; import { getDi } from "./getDi"; export const getDiForUnitTesting = ( @@ -27,27 +24,17 @@ export const getDiForUnitTesting = ( const di = getDi(); - di.register(getInjectable({ - id: "node-env", - instantiate: () => "production", - injectionToken: nodeEnvInjectionToken, - })); - di.preventSideEffects(); - const injectables = ( - global.injectablePaths.renderer.paths + runInAction(() => { + const injectables = global.injectablePaths.renderer.paths .map(path => require(path)) .flatMap(Object.values) - .filter(isInjectable) - ) as Injectable[]; + .filter(isInjectable); - runInAction(() => { - di.register(applicationInformationFakeInjectable); - - chunk(100)(injectables).forEach((chunkInjectables) => { - di.register(...chunkInjectables); - }); + for (const block of chunk(100)(injectables)) { + di.register(...block); + } }); if (doGeneralOverrides) {