diff --git a/src/common/vars/is-linux.injectable.ts b/src/common/vars/is-linux.injectable.ts index 4c9ce94e91..d84165fad5 100644 --- a/src/common/vars/is-linux.injectable.ts +++ b/src/common/vars/is-linux.injectable.ts @@ -3,11 +3,16 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; +import platformInjectable from "./platform.injectable"; const isLinuxInjectable = getInjectable({ id: "is-linux", - instantiate: () => process.platform === "linux", - causesSideEffects: true, + + instantiate: (di) => { + const platform = di.inject(platformInjectable); + + return platform === "linux"; + }, }); export default isLinuxInjectable; diff --git a/src/common/vars/is-mac.injectable.ts b/src/common/vars/is-mac.injectable.ts index 7a66119443..67a6fda286 100644 --- a/src/common/vars/is-mac.injectable.ts +++ b/src/common/vars/is-mac.injectable.ts @@ -3,11 +3,16 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; +import platformInjectable from "./platform.injectable"; const isMacInjectable = getInjectable({ id: "is-mac", - instantiate: () => process.platform === "darwin", - causesSideEffects: true, + + instantiate: (di) => { + const platform = di.inject(platformInjectable); + + return platform === "darwin"; + }, }); export default isMacInjectable; diff --git a/src/common/vars/is-windows.injectable.ts b/src/common/vars/is-windows.injectable.ts index 3ec7fad4b0..8eb78dcb58 100644 --- a/src/common/vars/is-windows.injectable.ts +++ b/src/common/vars/is-windows.injectable.ts @@ -3,11 +3,16 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; +import platformInjectable from "./platform.injectable"; const isWindowsInjectable = getInjectable({ id: "is-windows", - instantiate: () => process.platform === "win32", - causesSideEffects: true, + + instantiate: (di) => { + const platform = di.inject(platformInjectable); + + return platform === "win32"; + }, }); export default isWindowsInjectable; diff --git a/src/common/vars/platform.injectable.ts b/src/common/vars/platform.injectable.ts new file mode 100644 index 0000000000..11939a7f06 --- /dev/null +++ b/src/common/vars/platform.injectable.ts @@ -0,0 +1,13 @@ +/** + * 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"; + +const platformInjectable = getInjectable({ + id: "platform", + instantiate: () => process.platform, + causesSideEffects: true, +}); + +export default platformInjectable; diff --git a/src/main/getDiForUnitTesting.ts b/src/main/getDiForUnitTesting.ts index 9f78c9c9e7..8e40a63ee8 100644 --- a/src/main/getDiForUnitTesting.ts +++ b/src/main/getDiForUnitTesting.ts @@ -25,9 +25,6 @@ import type { ClusterStore } from "../common/cluster-store/cluster-store"; import type { Cluster } from "../common/cluster/cluster"; import userStoreInjectable from "../common/user-store/user-store.injectable"; import type { UserStore } from "../common/user-store"; -import isMacInjectable from "../common/vars/is-mac.injectable"; -import isWindowsInjectable from "../common/vars/is-windows.injectable"; -import isLinuxInjectable from "../common/vars/is-linux.injectable"; import getAbsolutePathInjectable from "../common/path/get-absolute-path.injectable"; import { getAbsolutePathFake } from "../common/test-utils/get-absolute-path-fake"; import joinPathsInjectable from "../common/path/join-paths.injectable"; @@ -80,6 +77,7 @@ import sendToChannelInElectronBrowserWindowInjectable from "./start-main-applica import broadcastMessageInjectable from "../common/ipc/broadcast-message.injectable"; import getElectronThemeInjectable from "./electron-app/features/get-electron-theme.injectable"; import syncThemeFromOperatingSystemInjectable from "./electron-app/features/sync-theme-from-operating-system.injectable"; +import platformInjectable from "../common/vars/platform.injectable"; export const getDiForUnitTesting = ( { doGeneralOverrides } = { doGeneralOverrides: false }, @@ -197,9 +195,7 @@ const overrideRunnablesHavingSideEffects = (di: DiContainer) => { }; const overrideOperatingSystem = (di: DiContainer) => { - di.override(isMacInjectable, () => true); - di.override(isWindowsInjectable, () => false); - di.override(isLinuxInjectable, () => false); + di.override(platformInjectable, () => "darwin"); di.override(getAbsolutePathInjectable, () => getAbsolutePathFake); di.override(joinPathsInjectable, () => joinPathsFake); };