1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

remove complex createStorage override

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-05-05 08:56:55 -04:00
parent 2a8ca21fc9
commit f2a0b72253
2 changed files with 4 additions and 52 deletions

View File

@ -3,6 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import directoryForUserDataInjectable from "../../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable";
import hostedClusterIdInjectable from "../../../../common/cluster-store/hosted-cluster-id.injectable";
import ipcRendererInjectable from "../../../app-paths/get-value-from-registered-channel/ipc-renderer/ipc-renderer.injectable";
import { getDiForUnitTesting } from "../../../getDiForUnitTesting";
@ -29,8 +30,7 @@ describe("DockStore", () => {
on: jest.fn(),
invoke: jest.fn(), // TODO: replace with proper mocking via the IPC bridge
} as never));
await di.runSetups();
di.override(directoryForUserDataInjectable, () => "some-directory-for-user-data");
dockStore = di.inject(dockStoreInjectable);
});

View File

@ -4,7 +4,7 @@
*/
import glob from "glob";
import { isEqual, isPlainObject, memoize } from "lodash/fp";
import { memoize } from "lodash/fp";
import { createContainer } from "@ogre-tools/injectable";
import { Environments, setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
import getValueFromRegisteredChannelInjectable from "./app-paths/get-value-from-registered-channel/get-value-from-registered-channel.injectable";
@ -32,24 +32,13 @@ import { joinPathsFake } from "../common/test-utils/join-paths-fake";
import hotbarStoreInjectable from "../common/hotbars/store.injectable";
import terminalSpawningPoolInjectable from "./components/dock/terminal/terminal-spawning-pool.injectable";
import hostedClusterIdInjectable from "../common/cluster-store/hosted-cluster-id.injectable";
import createStorageInjectable from "./utils/create-storage/create-storage.injectable";
import { observable, toJS } from "mobx";
import type { Draft } from "immer";
import { produce, isDraft } from "immer";
import type { GetDiForUnitTestingOptions } from "../test-utils/get-dis-for-unit-testing";
import historyInjectable from "./navigation/history.injectable";
export interface GetRendererDiForUnitTestingOptions extends GetDiForUnitTestingOptions {
overrideCreateStorage?: boolean;
}
export const getDiForUnitTesting = (opts: GetRendererDiForUnitTestingOptions = {}) => {
export const getDiForUnitTesting = (opts: GetDiForUnitTestingOptions = {}) => {
const {
doGeneralOverrides = false,
} = opts;
const {
overrideCreateStorage = doGeneralOverrides,
} = opts;
const di = createContainer();
setLegacyGlobalDiForExtensionApi(di, Environments.renderer);
@ -105,43 +94,6 @@ export const getDiForUnitTesting = (opts: GetRendererDiForUnitTestingOptions = {
}));
}
if (overrideCreateStorage) {
di.override(createStorageInjectable, () => function <MockT>(key: string, defaultValue: MockT) {
const srcValue = observable.box(defaultValue);
return {
get: () => srcValue.get(),
isDefaultValue: val => isEqual(val, defaultValue),
merge: (value: Partial<MockT> | ((draft: Draft<MockT>) => void | Partial<MockT>)) => {
const nextValue = produce(toJS(srcValue.get()), (draft) => {
if (typeof value == "function") {
const newValue = value(draft);
// merge returned plain objects from `value-as-callback` usage
// otherwise `draft` can be just modified inside a callback without returning any value (void)
if (newValue && !isDraft(newValue)) {
Object.assign(draft, newValue);
}
} else if (isPlainObject(value)) {
Object.assign(draft, value);
}
return draft;
});
srcValue.set(nextValue);
},
reset: () => srcValue.set(defaultValue),
set: (val: MockT) => srcValue.set(val),
get value() {
return srcValue.get();
},
whenReady: Promise.resolve(),
};
});
}
return di;
};