mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Extract injectable with side-effect for exact overriding
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
ff87f627aa
commit
12839c7784
@ -3,11 +3,16 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import platformInjectable from "./platform.injectable";
|
||||||
|
|
||||||
const isLinuxInjectable = getInjectable({
|
const isLinuxInjectable = getInjectable({
|
||||||
id: "is-linux",
|
id: "is-linux",
|
||||||
instantiate: () => process.platform === "linux",
|
|
||||||
causesSideEffects: true,
|
instantiate: (di) => {
|
||||||
|
const platform = di.inject(platformInjectable);
|
||||||
|
|
||||||
|
return platform === "linux";
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
export default isLinuxInjectable;
|
export default isLinuxInjectable;
|
||||||
|
|||||||
@ -3,11 +3,16 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import platformInjectable from "./platform.injectable";
|
||||||
|
|
||||||
const isMacInjectable = getInjectable({
|
const isMacInjectable = getInjectable({
|
||||||
id: "is-mac",
|
id: "is-mac",
|
||||||
instantiate: () => process.platform === "darwin",
|
|
||||||
causesSideEffects: true,
|
instantiate: (di) => {
|
||||||
|
const platform = di.inject(platformInjectable);
|
||||||
|
|
||||||
|
return platform === "darwin";
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
export default isMacInjectable;
|
export default isMacInjectable;
|
||||||
|
|||||||
@ -3,11 +3,16 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
import platformInjectable from "./platform.injectable";
|
||||||
|
|
||||||
const isWindowsInjectable = getInjectable({
|
const isWindowsInjectable = getInjectable({
|
||||||
id: "is-windows",
|
id: "is-windows",
|
||||||
instantiate: () => process.platform === "win32",
|
|
||||||
causesSideEffects: true,
|
instantiate: (di) => {
|
||||||
|
const platform = di.inject(platformInjectable);
|
||||||
|
|
||||||
|
return platform === "win32";
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
export default isWindowsInjectable;
|
export default isWindowsInjectable;
|
||||||
|
|||||||
13
src/common/vars/platform.injectable.ts
Normal file
13
src/common/vars/platform.injectable.ts
Normal file
@ -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;
|
||||||
@ -25,9 +25,6 @@ import type { ClusterStore } from "../common/cluster-store/cluster-store";
|
|||||||
import type { Cluster } from "../common/cluster/cluster";
|
import type { Cluster } from "../common/cluster/cluster";
|
||||||
import userStoreInjectable from "../common/user-store/user-store.injectable";
|
import userStoreInjectable from "../common/user-store/user-store.injectable";
|
||||||
import type { UserStore } from "../common/user-store";
|
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 getAbsolutePathInjectable from "../common/path/get-absolute-path.injectable";
|
||||||
import { getAbsolutePathFake } from "../common/test-utils/get-absolute-path-fake";
|
import { getAbsolutePathFake } from "../common/test-utils/get-absolute-path-fake";
|
||||||
import joinPathsInjectable from "../common/path/join-paths.injectable";
|
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 broadcastMessageInjectable from "../common/ipc/broadcast-message.injectable";
|
||||||
import getElectronThemeInjectable from "./electron-app/features/get-electron-theme.injectable";
|
import getElectronThemeInjectable from "./electron-app/features/get-electron-theme.injectable";
|
||||||
import syncThemeFromOperatingSystemInjectable from "./electron-app/features/sync-theme-from-operating-system.injectable";
|
import syncThemeFromOperatingSystemInjectable from "./electron-app/features/sync-theme-from-operating-system.injectable";
|
||||||
|
import platformInjectable from "../common/vars/platform.injectable";
|
||||||
|
|
||||||
export const getDiForUnitTesting = (
|
export const getDiForUnitTesting = (
|
||||||
{ doGeneralOverrides } = { doGeneralOverrides: false },
|
{ doGeneralOverrides } = { doGeneralOverrides: false },
|
||||||
@ -197,9 +195,7 @@ const overrideRunnablesHavingSideEffects = (di: DiContainer) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const overrideOperatingSystem = (di: DiContainer) => {
|
const overrideOperatingSystem = (di: DiContainer) => {
|
||||||
di.override(isMacInjectable, () => true);
|
di.override(platformInjectable, () => "darwin");
|
||||||
di.override(isWindowsInjectable, () => false);
|
|
||||||
di.override(isLinuxInjectable, () => false);
|
|
||||||
di.override(getAbsolutePathInjectable, () => getAbsolutePathFake);
|
di.override(getAbsolutePathInjectable, () => getAbsolutePathFake);
|
||||||
di.override(joinPathsInjectable, () => joinPathsFake);
|
di.override(joinPathsInjectable, () => joinPathsFake);
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user