diff --git a/src/common/user-store/user-store.ts b/src/common/user-store/user-store.ts index f20ce9c4c3..439232f785 100644 --- a/src/common/user-store/user-store.ts +++ b/src/common/user-store/user-store.ts @@ -3,11 +3,11 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { app, ipcMain } from "electron"; +import { app } from "electron"; import semver, { SemVer } from "semver"; import { action, computed, observable, reaction, makeObservable, isObservableArray, isObservableSet, isObservableMap } from "mobx"; import { BaseStore } from "../base-store"; -import migrations, { fileNameMigration } from "../../migrations/user-store"; +import migrations from "../../migrations/user-store"; import { getAppVersion } from "../utils/app-version"; import { kubeConfigDefaultPath } from "../kube-helpers"; import { appEventBus } from "../app-event-bus/event-bus"; @@ -30,11 +30,6 @@ export class UserStore extends BaseStore /* implements UserStore }); makeObservable(this); - - if (ipcMain) { - fileNameMigration(); - } - this.load(); } diff --git a/src/main/index.ts b/src/main/index.ts index fd05da0252..864a0209fb 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -63,6 +63,7 @@ import hotbarStoreInjectable from "../common/hotbar-store.injectable"; import applicationMenuItemsInjectable from "./menu/application-menu-items.injectable"; import type { DiContainer } from "@ogre-tools/injectable"; import { init } from "@sentry/electron/main"; +import { userStoreFileNameMigration } from "../migrations/user-store"; async function main(di: DiContainer) { app.setName(appName); @@ -71,6 +72,9 @@ async function main(di: DiContainer) { * Note: this MUST be called before electron's "ready" event has been emitted. */ initializeSentryReporting(init); + + // TODO make this part of the UserStore setup + await userStoreFileNameMigration(); await di.runSetups(); await app.whenReady(); diff --git a/src/migrations/user-store/file-name-migration.ts b/src/migrations/user-store/file-name-migration.ts index bff2ecaff1..b1f88b1cc4 100644 --- a/src/migrations/user-store/file-name-migration.ts +++ b/src/migrations/user-store/file-name-migration.ts @@ -6,11 +6,10 @@ import fse from "fs-extra"; import path from "path"; import { getLegacyGlobalDiForExtensionApi } from "../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; -import directoryForUserDataInjectable - from "../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable"; +import directoryForUserDataInjectable from "../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable"; import { isErrnoException } from "../../common/utils"; -export function fileNameMigration() { +export async function userStoreFileNameMigration() { const di = getLegacyGlobalDiForExtensionApi(); const userDataPath = di.inject(directoryForUserDataInjectable); @@ -18,10 +17,10 @@ export function fileNameMigration() { const lensUserStoreJsonPath = path.join(userDataPath, "lens-user-store.json"); try { - fse.moveSync(configJsonPath, lensUserStoreJsonPath); + await fse.move(configJsonPath, lensUserStoreJsonPath); } catch (error) { if (error instanceof Error && error.message === "dest already exists.") { - fse.removeSync(configJsonPath); + await fse.remove(configJsonPath); } else if (isErrnoException(error) && error.code === "ENOENT" && error.path === configJsonPath) { // (No such file or directory) return; // file already moved diff --git a/src/migrations/user-store/index.ts b/src/migrations/user-store/index.ts index 797868954b..5f42eacc4a 100644 --- a/src/migrations/user-store/index.ts +++ b/src/migrations/user-store/index.ts @@ -10,10 +10,10 @@ import { joinMigrations } from "../helpers"; import version210Beta4 from "./2.1.0-beta.4"; import version500Alpha3 from "./5.0.0-alpha.3"; import version503Beta1 from "./5.0.3-beta.1"; -import { fileNameMigration } from "./file-name-migration"; +import { userStoreFileNameMigration } from "./file-name-migration"; export { - fileNameMigration, + userStoreFileNameMigration, }; export default joinMigrations( diff --git a/src/renderer/components/+catalog/catalog.test.tsx b/src/renderer/components/+catalog/catalog.test.tsx index f1c669e3ee..1ba13ce0ba 100644 --- a/src/renderer/components/+catalog/catalog.test.tsx +++ b/src/renderer/components/+catalog/catalog.test.tsx @@ -124,9 +124,9 @@ describe("", () => { })); catalogEntityStore = di.inject(catalogEntityStoreInjectable); - jest - .spyOn(catalogEntityStore, "selectedItem", "get") - .mockImplementation(() => computed(() => catalogEntityItem)); + Object.assign(catalogEntityStore, { + selectedItem: computed(() => catalogEntityItem), + }); }); afterEach(() => {