mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Fix tests by making the setup more like the real application
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
a70992e005
commit
fe9f585b71
@ -15,16 +15,18 @@ import clusterStoreInjectable from "../cluster-store/cluster-store.injectable";
|
||||
import type { DiContainer } from "@ogre-tools/injectable";
|
||||
import type { CreateCluster } from "../cluster/create-cluster-injection-token";
|
||||
import { createClusterInjectionToken } from "../cluster/create-cluster-injection-token";
|
||||
import directoryForUserDataInjectable from "../app-paths/directory-for-user-data.injectable";
|
||||
import { getDiForUnitTesting } from "../../main/getDiForUnitTesting";
|
||||
import getConfigurationFileModelInjectable from "../get-configuration-file-model/get-configuration-file-model.injectable";
|
||||
import assert from "assert";
|
||||
import directoryForTempInjectable from "../app-paths/directory-for-temp.injectable";
|
||||
import kubectlBinaryNameInjectable from "../../main/kubectl/binary-name.injectable";
|
||||
import kubectlDownloadingNormalizedArchInjectable from "../../main/kubectl/normalized-arch.injectable";
|
||||
import normalizedPlatformInjectable from "../vars/normalized-platform.injectable";
|
||||
import fsInjectable from "../fs/fs.injectable";
|
||||
import storeMigrationVersionInjectable from "../vars/store-migration-version.injectable";
|
||||
import { beforeApplicationIsLoadingInjectionToken } from "../../main/start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
||||
import { beforeElectronIsReadyInjectionToken } from "../../main/start-main-application/runnable-tokens/before-electron-is-ready-injection-token";
|
||||
import { runManyFor } from "../runnable/run-many-for";
|
||||
import { runManySyncFor } from "../runnable/run-many-sync-for";
|
||||
|
||||
console = new Console(stdout, stderr);
|
||||
|
||||
@ -86,12 +88,14 @@ describe("cluster-store", () => {
|
||||
|
||||
mockFs();
|
||||
|
||||
mainDi.override(directoryForUserDataInjectable, () => ({
|
||||
get: () => "some-directory-for-user-data",
|
||||
}));
|
||||
mainDi.override(directoryForTempInjectable, () => ({
|
||||
get: () => "some-directory-for-temp",
|
||||
}));
|
||||
const runManySync = runManySyncFor(mainDi);
|
||||
const runMany = runManyFor(mainDi);
|
||||
const runAllBeforeElectronIsReady = runManySync(beforeElectronIsReadyInjectionToken);
|
||||
const runAllBeforeApplicationIsLoading = runMany(beforeApplicationIsLoadingInjectionToken);
|
||||
|
||||
runAllBeforeElectronIsReady();
|
||||
await runAllBeforeApplicationIsLoading();
|
||||
|
||||
mainDi.override(kubectlBinaryNameInjectable, () => "kubectl");
|
||||
mainDi.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64");
|
||||
mainDi.override(normalizedPlatformInjectable, () => "darwin");
|
||||
@ -213,7 +217,7 @@ describe("cluster-store", () => {
|
||||
beforeEach(() => {
|
||||
const mockOpts = {
|
||||
"temp-kube-config": kubeconfig,
|
||||
"some-directory-for-user-data": {
|
||||
"/some-electron-app-path-for-user-data": {
|
||||
"lens-cluster-store.json": JSON.stringify({
|
||||
__internal__: {
|
||||
migrations: {
|
||||
@ -304,7 +308,7 @@ users:
|
||||
const mockOpts = {
|
||||
"invalid-kube-config": invalidKubeconfig,
|
||||
"valid-kube-config": kubeconfig,
|
||||
"some-directory-for-user-data": {
|
||||
"/some-electron-app-path-for-user-data": {
|
||||
"lens-cluster-store.json": JSON.stringify({
|
||||
__internal__: {
|
||||
migrations: {
|
||||
@ -352,7 +356,7 @@ users:
|
||||
describe("pre 3.6.0-beta.1 config with an existing cluster", () => {
|
||||
beforeEach(() => {
|
||||
const mockOpts = {
|
||||
"some-directory-for-user-data": {
|
||||
"/some-electron-app-path-for-user-data": {
|
||||
"lens-cluster-store.json": JSON.stringify({
|
||||
__internal__: {
|
||||
migrations: {
|
||||
|
||||
@ -26,14 +26,16 @@ import { Console } from "console";
|
||||
import { stdout, stderr } from "process";
|
||||
import userStoreInjectable from "../user-store/user-store.injectable";
|
||||
import type { DiContainer } from "@ogre-tools/injectable";
|
||||
import directoryForUserDataInjectable from "../app-paths/directory-for-user-data.injectable";
|
||||
import type { ClusterStoreModel } from "../cluster-store/cluster-store";
|
||||
import { defaultThemeId } from "../vars";
|
||||
import writeFileInjectable from "../fs/write-file.injectable";
|
||||
import { getDiForUnitTesting } from "../../main/getDiForUnitTesting";
|
||||
import getConfigurationFileModelInjectable from "../get-configuration-file-model/get-configuration-file-model.injectable";
|
||||
import storeMigrationVersionInjectable from "../vars/store-migration-version.injectable";
|
||||
import releaseChannelInjectable from "../vars/release-channel.injectable";
|
||||
import { beforeApplicationIsLoadingInjectionToken } from "../../main/start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
||||
import { beforeElectronIsReadyInjectionToken } from "../../main/start-main-application/runnable-tokens/before-electron-is-ready-injection-token";
|
||||
import { runManyFor } from "../runnable/run-many-for";
|
||||
import { runManySyncFor } from "../runnable/run-many-sync-for";
|
||||
|
||||
console = new Console(stdout, stderr);
|
||||
|
||||
@ -47,18 +49,16 @@ describe("user store tests", () => {
|
||||
mockFs();
|
||||
|
||||
di.override(writeFileInjectable, () => () => Promise.resolve());
|
||||
di.override(directoryForUserDataInjectable, () => ({
|
||||
get: () => "some-directory-for-user-data",
|
||||
}));
|
||||
|
||||
di.permitSideEffects(getConfigurationFileModelInjectable);
|
||||
di.permitSideEffects(userStoreInjectable);
|
||||
|
||||
di.override(releaseChannelInjectable, () => ({
|
||||
get: () => "latest" as const,
|
||||
init: async () => {},
|
||||
}));
|
||||
|
||||
di.unoverride(userStoreInjectable);
|
||||
|
||||
const runManySync = runManySyncFor(di);
|
||||
const runAllBeforeElectronIsReady = runManySync(beforeElectronIsReadyInjectionToken);
|
||||
|
||||
runAllBeforeElectronIsReady();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
@ -66,11 +66,15 @@ describe("user store tests", () => {
|
||||
});
|
||||
|
||||
describe("for an empty config", () => {
|
||||
beforeEach(() => {
|
||||
mockFs({ "some-directory-for-user-data": { "config.json": "{}", "kube_config": "{}" }});
|
||||
beforeEach(async () => {
|
||||
mockFs({ "/some-electron-app-path-for-user-data": { "config.json": "{}", "kube_config": "{}" }});
|
||||
|
||||
userStore = di.inject(userStoreInjectable);
|
||||
userStore.load();
|
||||
|
||||
const runMany = runManyFor(di);
|
||||
const runAllBeforeApplicationIsLoading = runMany(beforeApplicationIsLoadingInjectionToken);
|
||||
|
||||
await runAllBeforeApplicationIsLoading();
|
||||
});
|
||||
|
||||
it("allows setting and retrieving lastSeenAppVersion", () => {
|
||||
@ -96,9 +100,9 @@ describe("user store tests", () => {
|
||||
});
|
||||
|
||||
describe("migrations", () => {
|
||||
beforeEach(() => {
|
||||
beforeEach(async () => {
|
||||
mockFs({
|
||||
"some-directory-for-user-data": {
|
||||
"/some-electron-app-path-for-user-data": {
|
||||
"config.json": JSON.stringify({
|
||||
user: { username: "foobar" },
|
||||
preferences: { colorTheme: "light" },
|
||||
@ -108,7 +112,7 @@ describe("user store tests", () => {
|
||||
clusters: [
|
||||
{
|
||||
id: "foobar",
|
||||
kubeConfigPath: "some-directory-for-user-data/extension_data/foo/bar",
|
||||
kubeConfigPath: "/some-electron-app-path-for-user-data/extension_data/foo/bar",
|
||||
},
|
||||
{
|
||||
id: "barfoo",
|
||||
@ -128,15 +132,19 @@ describe("user store tests", () => {
|
||||
di.override(storeMigrationVersionInjectable, () => "10.0.0");
|
||||
|
||||
userStore = di.inject(userStoreInjectable);
|
||||
userStore.load();
|
||||
|
||||
const runMany = runManyFor(di);
|
||||
const runAllBeforeApplicationIsLoading = runMany(beforeApplicationIsLoadingInjectionToken);
|
||||
|
||||
await runAllBeforeApplicationIsLoading();
|
||||
});
|
||||
|
||||
it("sets last seen app version to 0.0.0", () => {
|
||||
expect(userStore.lastSeenAppVersion).toBe("0.0.0");
|
||||
});
|
||||
|
||||
it.only("skips clusters for adding to kube-sync with files under extension_data/", () => {
|
||||
expect(userStore.syncKubeconfigEntries.has("some-directory-for-user-data/extension_data/foo/bar")).toBe(false);
|
||||
it("skips clusters for adding to kube-sync with files under extension_data/", () => {
|
||||
expect(userStore.syncKubeconfigEntries.has("/some-electron-app-path-for-user-data/extension_data/foo/bar")).toBe(false);
|
||||
expect(userStore.syncKubeconfigEntries.has("some/other/path")).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import type { AppPaths } from "./token";
|
||||
import type { RequestChannel } from "../utils/channel/request-channel-listener-injection-token";
|
||||
|
||||
export type AppPathsChannel = RequestChannel<void, AppPaths>;
|
||||
|
||||
export const appPathsChannel: AppPathsChannel = {
|
||||
id: "app-paths",
|
||||
};
|
||||
|
||||
@ -32,7 +32,9 @@ describe("InitializableState tests", () => {
|
||||
} = createInitializableState({
|
||||
id: "my-state",
|
||||
init: initMock,
|
||||
when: null as any,
|
||||
when: {
|
||||
id: "some-id",
|
||||
} as any,
|
||||
}));
|
||||
|
||||
runInAction(() => {
|
||||
@ -49,14 +51,14 @@ describe("InitializableState tests", () => {
|
||||
});
|
||||
|
||||
it("when get is called, throw", () => {
|
||||
expect(() => state.get()).toThrowError("InitializableState(my-state) has not been initialized yet");
|
||||
expect(() => state.get()).toThrowError("Cannot get value from \"my-state\"; it is currently in state=uninitialized");
|
||||
});
|
||||
|
||||
describe("when init is called", () => {
|
||||
beforeEach(async () => {
|
||||
const initState = di.inject(initStateInjectable);
|
||||
|
||||
await initState.run();
|
||||
initState.run();
|
||||
});
|
||||
|
||||
it("should call provided initialization function", () => {
|
||||
@ -64,7 +66,7 @@ describe("InitializableState tests", () => {
|
||||
});
|
||||
|
||||
it("when get is called, throw", () => {
|
||||
expect(() => state.get()).toThrowError("InitializableState(my-state) has not finished initializing");
|
||||
expect(() => state.get()).toThrowError("Cannot get value from \"my-state\"; it is currently in state=initializing");
|
||||
});
|
||||
|
||||
describe("when initialization resolves", () => {
|
||||
@ -79,7 +81,7 @@ describe("InitializableState tests", () => {
|
||||
it("when init is called again, throws", async () => {
|
||||
const initState = di.inject(initStateInjectable);
|
||||
|
||||
await expect(() => initState.run()).rejects.toThrow("Cannot initialize InitializableState(my-state) more than once");
|
||||
await expect(async () => initState.run()).rejects.toThrow("Cannot start initializing value for \"my-state\"; it is currently in state=initialized");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -6,6 +6,7 @@ import type { DiContainerForInjection, InjectionToken } from "@ogre-tools/inject
|
||||
import type { Composite } from "../utils/composite/get-composite/get-composite";
|
||||
import { getCompositeFor } from "../utils/composite/get-composite/get-composite";
|
||||
import * as uuid from "uuid";
|
||||
import assert from "assert";
|
||||
|
||||
export interface RunnableSync<TParameter = void> {
|
||||
id: string;
|
||||
@ -18,7 +19,7 @@ type RunSync<Param> = (parameter: Param) => void;
|
||||
export type RunManySync = <Param>(injectionToken: InjectionToken<RunnableSync<Param>, void>) => RunSync<Param>;
|
||||
|
||||
function runCompositeRunnableSyncs<Param>(param: Param, composite: Composite<RunnableSync<Param>>) {
|
||||
composite.value.run(param);
|
||||
assert(!((composite.value.run(param) as any) instanceof Promise), "Cannot be an async function for runnable sync");
|
||||
composite.children.map(composite => runCompositeRunnableSyncs(param, composite));
|
||||
}
|
||||
|
||||
|
||||
@ -8,9 +8,7 @@ import { getDiForUnitTesting } from "../../main/getDiForUnitTesting";
|
||||
import extensionDiscoveryInjectable from "../extension-discovery/extension-discovery.injectable";
|
||||
import type { ExtensionDiscovery } from "../extension-discovery/extension-discovery";
|
||||
import installExtensionInjectable from "../extension-installer/install-extension/install-extension.injectable";
|
||||
import directoryForUserDataInjectable from "../../common/app-paths/directory-for-user-data.injectable";
|
||||
import { delay } from "../../renderer/utils";
|
||||
import { observable, runInAction, when } from "mobx";
|
||||
import readJsonFileInjectable from "../../common/fs/read-json-file.injectable";
|
||||
import pathExistsInjectable from "../../common/fs/path-exists.injectable";
|
||||
import watchInjectable from "../../common/fs/watch/watch.injectable";
|
||||
@ -19,6 +17,10 @@ import removePathInjectable from "../../common/fs/remove-path.injectable";
|
||||
import type { JoinPaths } from "../../common/path/join-paths.injectable";
|
||||
import joinPathsInjectable from "../../common/path/join-paths.injectable";
|
||||
import homeDirectoryPathInjectable from "../../common/os/home-directory-path.injectable";
|
||||
import { runManyFor } from "../../common/runnable/run-many-for";
|
||||
import { runManySyncFor } from "../../common/runnable/run-many-sync-for";
|
||||
import { beforeApplicationIsLoadingInjectionToken } from "../../main/start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
||||
import { beforeElectronIsReadyInjectionToken } from "../../main/start-main-application/runnable-tokens/before-electron-is-ready-injection-token";
|
||||
|
||||
describe("ExtensionDiscovery", () => {
|
||||
let extensionDiscovery: ExtensionDiscovery;
|
||||
@ -28,15 +30,20 @@ describe("ExtensionDiscovery", () => {
|
||||
let joinPaths: JoinPaths;
|
||||
let homeDirectoryPath: string;
|
||||
|
||||
beforeEach(() => {
|
||||
beforeEach(async () => {
|
||||
const di = getDiForUnitTesting({ doGeneralOverrides: true });
|
||||
|
||||
di.override(directoryForUserDataInjectable, () => ({
|
||||
get: () => "/some-directory-for-user-data",
|
||||
}));
|
||||
di.override(installExtensionInjectable, () => () => Promise.resolve());
|
||||
di.override(extensionApiVersionInjectable, () => "5.0.0");
|
||||
|
||||
const runManySync = runManySyncFor(di);
|
||||
const runMany = runManyFor(di);
|
||||
const runAllBeforeElectronIsReady = runManySync(beforeElectronIsReadyInjectionToken);
|
||||
const runAllBeforeApplicationIsLoading = runMany(beforeApplicationIsLoadingInjectionToken);
|
||||
|
||||
runAllBeforeElectronIsReady();
|
||||
await runAllBeforeApplicationIsLoading();
|
||||
|
||||
joinPaths = di.inject(joinPathsInjectable);
|
||||
homeDirectoryPath = di.inject(homeDirectoryPathInjectable);
|
||||
|
||||
@ -55,7 +62,6 @@ describe("ExtensionDiscovery", () => {
|
||||
});
|
||||
|
||||
it("emits add for added extension", async () => {
|
||||
const letTestFinish = observable.box(false);
|
||||
let addHandler!: (filePath: string) => void;
|
||||
|
||||
readJsonFileMock.mockImplementation((p) => {
|
||||
@ -87,27 +93,27 @@ describe("ExtensionDiscovery", () => {
|
||||
|
||||
await extensionDiscovery.watchExtensions();
|
||||
|
||||
extensionDiscovery.events.on("add", extension => {
|
||||
expect(extension).toEqual({
|
||||
absolutePath: expect.any(String),
|
||||
id: "/some-directory-for-user-data/node_modules/my-extension/package.json",
|
||||
isBundled: false,
|
||||
isEnabled: false,
|
||||
isCompatible: true,
|
||||
manifest: {
|
||||
name: "my-extension",
|
||||
version: "1.0.0",
|
||||
engines: {
|
||||
lens: "5.0.0",
|
||||
},
|
||||
},
|
||||
manifestPath: "/some-directory-for-user-data/node_modules/my-extension/package.json",
|
||||
});
|
||||
runInAction(() => letTestFinish.set(true));
|
||||
});
|
||||
const onAdd = jest.fn();
|
||||
|
||||
extensionDiscovery.events.on("add", onAdd);
|
||||
|
||||
addHandler(joinPaths(extensionDiscovery.localFolderPath, "/my-extension/package.json"));
|
||||
await when(() => letTestFinish.get());
|
||||
await delay(10);
|
||||
expect(onAdd).toBeCalledWith({
|
||||
absolutePath: "/some-home-directory/.k8slens/extensions/my-extension",
|
||||
id: "/some-electron-app-path-for-user-data/node_modules/my-extension/package.json",
|
||||
isBundled: false,
|
||||
isEnabled: false,
|
||||
isCompatible: true,
|
||||
manifest: {
|
||||
name: "my-extension",
|
||||
version: "1.0.0",
|
||||
engines: {
|
||||
lens: "5.0.0",
|
||||
},
|
||||
},
|
||||
manifestPath: "/some-electron-app-path-for-user-data/node_modules/my-extension/package.json",
|
||||
});
|
||||
});
|
||||
|
||||
it("doesn't emit add for added file under extension", async () => {
|
||||
|
||||
@ -21,8 +21,6 @@ import { Namespace } from "../../../common/k8s-api/endpoints";
|
||||
import showSuccessNotificationInjectable from "../../../renderer/components/notifications/show-success-notification.injectable";
|
||||
import showErrorNotificationInjectable from "../../../renderer/components/notifications/show-error-notification.injectable";
|
||||
import readJsonFileInjectable from "../../../common/fs/read-json-file.injectable";
|
||||
import directoryForLensLocalStorageInjectable from "../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable";
|
||||
import hostedClusterIdInjectable from "../../../renderer/cluster-frame-context/hosted-cluster-id.injectable";
|
||||
import { controlWhenStoragesAreReady } from "../../../renderer/utils/create-storage/storages-are-ready";
|
||||
|
||||
describe("cluster/namespaces - edit namespace from new tab", () => {
|
||||
@ -45,12 +43,6 @@ describe("cluster/namespaces - edit namespace from new tab", () => {
|
||||
showErrorNotificationMock = jest.fn();
|
||||
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
windowDi.override(directoryForLensLocalStorageInjectable, () => ({
|
||||
get: () => "/some-directory-for-lens-local-storage",
|
||||
}));
|
||||
|
||||
windowDi.override(hostedClusterIdInjectable, () => "some-cluster-id");
|
||||
|
||||
storagesAreReady = controlWhenStoragesAreReady(windowDi);
|
||||
|
||||
windowDi.override(
|
||||
@ -514,7 +506,7 @@ metadata:
|
||||
);
|
||||
|
||||
const actual = (await readJsonFile(
|
||||
"/some-directory-for-lens-local-storage/some-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json",
|
||||
)) as any;
|
||||
|
||||
expect(
|
||||
|
||||
@ -10,8 +10,6 @@ import type { AsyncFnMock } from "@async-fn/jest";
|
||||
import asyncFn from "@async-fn/jest";
|
||||
import type { CallForResource } from "../../../renderer/components/dock/edit-resource/edit-resource-model/call-for-resource/call-for-resource.injectable";
|
||||
import callForResourceInjectable from "../../../renderer/components/dock/edit-resource/edit-resource-model/call-for-resource/call-for-resource.injectable";
|
||||
import directoryForLensLocalStorageInjectable from "../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable";
|
||||
import hostedClusterIdInjectable from "../../../renderer/cluster-frame-context/hosted-cluster-id.injectable";
|
||||
import { controlWhenStoragesAreReady } from "../../../renderer/utils/create-storage/storages-are-ready";
|
||||
import writeJsonFileInjectable from "../../../common/fs/write-json-file.injectable";
|
||||
import { TabKind } from "../../../renderer/components/dock/dock/store";
|
||||
@ -30,12 +28,6 @@ describe("cluster/namespaces - edit namespaces from previously opened tab", () =
|
||||
callForNamespaceMock = asyncFn();
|
||||
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
windowDi.override(directoryForLensLocalStorageInjectable, () => ({
|
||||
get: () => "/some-directory-for-lens-local-storage",
|
||||
}));
|
||||
|
||||
windowDi.override(hostedClusterIdInjectable, () => "some-cluster-id");
|
||||
|
||||
storagesAreReady = controlWhenStoragesAreReady(windowDi);
|
||||
|
||||
windowDi.override(callForResourceInjectable, () => callForNamespaceMock);
|
||||
@ -52,7 +44,7 @@ describe("cluster/namespaces - edit namespaces from previously opened tab", () =
|
||||
const writeJsonFile = windowDi.inject(writeJsonFileInjectable);
|
||||
|
||||
await writeJsonFile(
|
||||
"/some-directory-for-lens-local-storage/some-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json",
|
||||
{
|
||||
dock: {
|
||||
height: 300,
|
||||
|
||||
@ -7,7 +7,6 @@ import { getInjectable } from "@ogre-tools/injectable";
|
||||
import React from "react";
|
||||
import type { RenderResult } from "@testing-library/react";
|
||||
import { fireEvent } from "@testing-library/react";
|
||||
import directoryForLensLocalStorageInjectable from "../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable";
|
||||
import { routeSpecificComponentInjectionToken } from "../../renderer/routes/route-specific-component-injection-token";
|
||||
import type { SidebarItemRegistration } from "../../renderer/components/layout/sidebar-items.injectable";
|
||||
import { sidebarItemsInjectionToken } from "../../renderer/components/layout/sidebar-items.injectable";
|
||||
@ -38,10 +37,6 @@ describe("cluster - sidebar and tab navigation for core", () => {
|
||||
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
windowDi.override(storageSaveDelayInjectable, () => 250);
|
||||
|
||||
windowDi.override(directoryForLensLocalStorageInjectable, () => ({
|
||||
get: () => "/some-directory-for-lens-local-storage",
|
||||
}));
|
||||
});
|
||||
});
|
||||
|
||||
@ -95,7 +90,7 @@ describe("cluster - sidebar and tab navigation for core", () => {
|
||||
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
||||
|
||||
await writeJsonFileFake(
|
||||
"/some-directory-for-lens-local-storage/some-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json",
|
||||
{
|
||||
sidebar: {
|
||||
expanded: { "some-parent-id": true },
|
||||
@ -103,7 +98,9 @@ describe("cluster - sidebar and tab navigation for core", () => {
|
||||
},
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
builder.afterWindowStart(async (windowDi) => {
|
||||
const sidebarStorage = windowDi.inject(sidebarStorageInjectable);
|
||||
|
||||
await sidebarStorage.whenReady;
|
||||
@ -135,7 +132,7 @@ describe("cluster - sidebar and tab navigation for core", () => {
|
||||
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
||||
|
||||
await writeJsonFileFake(
|
||||
"/some-directory-for-lens-local-storage/some-hosted-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-hosted-cluster-id.json",
|
||||
{
|
||||
sidebar: {
|
||||
expanded: { "some-unknown-parent-id": true },
|
||||
@ -165,7 +162,7 @@ describe("cluster - sidebar and tab navigation for core", () => {
|
||||
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
||||
|
||||
await writeJsonFileFake(
|
||||
"/some-directory-for-lens-local-storage/some-hosted-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-hosted-cluster-id.json",
|
||||
{
|
||||
someThingButSidebar: {},
|
||||
},
|
||||
@ -271,7 +268,7 @@ describe("cluster - sidebar and tab navigation for core", () => {
|
||||
const pathExistsFake = windowDi.inject(pathExistsInjectable);
|
||||
|
||||
const actual = await pathExistsFake(
|
||||
"/some-directory-for-lens-local-storage/some-hosted-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-hosted-cluster-id.json",
|
||||
);
|
||||
|
||||
expect(actual).toBe(false);
|
||||
@ -283,7 +280,7 @@ describe("cluster - sidebar and tab navigation for core", () => {
|
||||
const readJsonFileFake = windowDi.inject(readJsonFileInjectable);
|
||||
|
||||
const actual = await readJsonFileFake(
|
||||
"/some-directory-for-lens-local-storage/some-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json",
|
||||
);
|
||||
|
||||
expect(actual).toEqual({
|
||||
|
||||
@ -5,7 +5,6 @@
|
||||
import React from "react";
|
||||
import type { RenderResult } from "@testing-library/react";
|
||||
import { fireEvent } from "@testing-library/react";
|
||||
import directoryForLensLocalStorageInjectable from "../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable";
|
||||
import routesInjectable from "../../renderer/routes/routes.injectable";
|
||||
import { matches } from "lodash/fp";
|
||||
import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
|
||||
@ -34,10 +33,6 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
||||
|
||||
applicationBuilder.beforeWindowStart((windowDi) => {
|
||||
windowDi.override(storageSaveDelayInjectable, () => 250);
|
||||
|
||||
windowDi.override(directoryForLensLocalStorageInjectable, () => ({
|
||||
get: () => "/some-directory-for-lens-local-storage",
|
||||
}));
|
||||
});
|
||||
});
|
||||
|
||||
@ -175,7 +170,7 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
||||
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
||||
|
||||
await writeJsonFileFake(
|
||||
"/some-directory-for-lens-local-storage/some-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json",
|
||||
{
|
||||
sidebar: {
|
||||
expanded: { "some-extension-name-some-parent-id": true },
|
||||
@ -211,7 +206,7 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
||||
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
||||
|
||||
await writeJsonFileFake(
|
||||
"/some-directory-for-lens-local-storage/some-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json",
|
||||
{
|
||||
sidebar: {
|
||||
expanded: { "some-extension-name-some-unknown-parent-id": true },
|
||||
@ -241,7 +236,7 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
||||
const writeJsonFileFake = windowDi.inject(writeJsonFileInjectable);
|
||||
|
||||
await writeJsonFileFake(
|
||||
"/some-directory-for-lens-local-storage/some-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json",
|
||||
{
|
||||
someThingButSidebar: {},
|
||||
},
|
||||
@ -387,7 +382,7 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
||||
const pathExistsFake = windowDi.inject(pathExistsInjectable);
|
||||
|
||||
const actual = await pathExistsFake(
|
||||
"/some-directory-for-lens-local-storage/some-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json",
|
||||
);
|
||||
|
||||
expect(actual).toBe(false);
|
||||
@ -399,7 +394,7 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
|
||||
const readJsonFileFake = windowDi.inject(readJsonFileInjectable);
|
||||
|
||||
const actual = await readJsonFileFake(
|
||||
"/some-directory-for-lens-local-storage/some-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json",
|
||||
);
|
||||
|
||||
expect(actual).toEqual({
|
||||
|
||||
@ -14,7 +14,6 @@ import type { RequestCreateHelmRelease } from "../../../common/k8s-api/endpoints
|
||||
import requestCreateHelmReleaseInjectable from "../../../common/k8s-api/endpoints/helm-releases.api/request-create.injectable";
|
||||
import currentPathInjectable from "../../../renderer/routes/current-path.injectable";
|
||||
import writeJsonFileInjectable from "../../../common/fs/write-json-file.injectable";
|
||||
import directoryForLensLocalStorageInjectable from "../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable";
|
||||
import dockStoreInjectable from "../../../renderer/components/dock/dock/store.injectable";
|
||||
import type { ReadJsonFile } from "../../../common/fs/read-json-file.injectable";
|
||||
import readJsonFileInjectable from "../../../common/fs/read-json-file.injectable";
|
||||
@ -52,9 +51,6 @@ describe("installing helm chart from new tab", () => {
|
||||
requestCreateHelmReleaseMock = asyncFn();
|
||||
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
windowDi.override(directoryForLensLocalStorageInjectable, () => ({
|
||||
get: () => "/some-directory-for-lens-local-storage",
|
||||
}));
|
||||
windowDi.override(requestDetailedHelmReleaseInjectable, () => requestDetailedHelmReleaseMock);
|
||||
windowDi.override(requestHelmChartsInjectable, () => requestHelmChartsMock);
|
||||
windowDi.override(requestHelmChartVersionsInjectable, () => requestHelmChartVersionsMock);
|
||||
@ -88,7 +84,7 @@ describe("installing helm chart from new tab", () => {
|
||||
const writeJsonFile = windowDi.inject(writeJsonFileInjectable);
|
||||
|
||||
await writeJsonFile(
|
||||
"/some-directory-for-lens-local-storage/some-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json",
|
||||
{
|
||||
dock: {
|
||||
height: 300,
|
||||
@ -688,7 +684,7 @@ describe("installing helm chart from new tab", () => {
|
||||
});
|
||||
|
||||
it("stores the selected version", async () => {
|
||||
const actual = await readJsonFile("/some-directory-for-lens-local-storage/some-cluster-id.json");
|
||||
const actual = await readJsonFile("/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json");
|
||||
|
||||
expect(actual).toMatchObject({
|
||||
install_charts: {
|
||||
@ -765,7 +761,7 @@ describe("installing helm chart from new tab", () => {
|
||||
});
|
||||
|
||||
it("stores the selected namespace", async () => {
|
||||
const actual = await readJsonFile("/some-directory-for-lens-local-storage/some-cluster-id.json");
|
||||
const actual = await readJsonFile("/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json");
|
||||
|
||||
expect(actual).toMatchObject({
|
||||
install_charts: {
|
||||
@ -878,7 +874,7 @@ describe("installing helm chart from new tab", () => {
|
||||
});
|
||||
|
||||
it("stores the changed configuration", async () => {
|
||||
const actual = await readJsonFile("/some-directory-for-lens-local-storage/some-cluster-id.json");
|
||||
const actual = await readJsonFile("/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json");
|
||||
|
||||
expect(actual).toMatchObject({
|
||||
install_charts: {
|
||||
@ -946,7 +942,7 @@ describe("installing helm chart from new tab", () => {
|
||||
});
|
||||
|
||||
it("stores the changed custom name", async () => {
|
||||
const actual = await readJsonFile("/some-directory-for-lens-local-storage/some-cluster-id.json");
|
||||
const actual = await readJsonFile("/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json");
|
||||
|
||||
expect(actual).toMatchObject({
|
||||
install_charts: {
|
||||
|
||||
@ -12,8 +12,6 @@ import getRandomInstallChartTabIdInjectable from "../../../renderer/components/d
|
||||
import namespaceStoreInjectable from "../../../renderer/components/+namespaces/store.injectable";
|
||||
import type { NamespaceStore } from "../../../renderer/components/+namespaces/store";
|
||||
import writeJsonFileInjectable from "../../../common/fs/write-json-file.injectable";
|
||||
import directoryForLensLocalStorageInjectable from "../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable";
|
||||
import hostedClusterIdInjectable from "../../../renderer/cluster-frame-context/hosted-cluster-id.injectable";
|
||||
import { TabKind } from "../../../renderer/components/dock/dock/store";
|
||||
import { controlWhenStoragesAreReady } from "../../../renderer/utils/create-storage/storages-are-ready";
|
||||
import requestCreateHelmReleaseInjectable from "../../../common/k8s-api/endpoints/helm-releases.api/request-create.injectable";
|
||||
@ -39,10 +37,6 @@ describe("installing helm chart from previously opened tab", () => {
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
storagesAreReady = controlWhenStoragesAreReady(windowDi);
|
||||
|
||||
windowDi.override(directoryForLensLocalStorageInjectable, () => ({
|
||||
get: () => "/some-directory-for-lens-local-storage",
|
||||
}));
|
||||
windowDi.override(hostedClusterIdInjectable, () => "some-cluster-id");
|
||||
windowDi.override(requestHelmChartVersionsInjectable, () => requestHelmChartVersionsMock);
|
||||
windowDi.override(requestHelmChartValuesInjectable, () => requestHelmChartValuesMock);
|
||||
windowDi.override(requestCreateHelmReleaseInjectable, () => jest.fn());
|
||||
@ -77,7 +71,7 @@ describe("installing helm chart from previously opened tab", () => {
|
||||
const writeJsonFile = windowDi.inject(writeJsonFileInjectable);
|
||||
|
||||
await writeJsonFile(
|
||||
"/some-directory-for-lens-local-storage/some-cluster-id.json",
|
||||
"/some-electron-app-path-for-user-data/lens-local-storage/some-cluster-id.json",
|
||||
{
|
||||
dock: {
|
||||
height: 300,
|
||||
|
||||
@ -12,8 +12,6 @@ import { HelmChart } from "../../../common/k8s-api/endpoints/helm-charts.api";
|
||||
import getRandomInstallChartTabIdInjectable from "../../../renderer/components/dock/install-chart/get-random-install-chart-tab-id.injectable";
|
||||
import requestCreateHelmReleaseInjectable from "../../../common/k8s-api/endpoints/helm-releases.api/request-create.injectable";
|
||||
import { flushPromises } from "../../../common/test-utils/flush-promises";
|
||||
import directoryForLensLocalStorageInjectable from "../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable";
|
||||
import hostedClusterIdInjectable from "../../../renderer/cluster-frame-context/hosted-cluster-id.injectable";
|
||||
import dockStoreInjectable from "../../../renderer/components/dock/dock/store.injectable";
|
||||
import type { RequestHelmCharts } from "../../../common/k8s-api/endpoints/helm-charts.api/request-charts.injectable";
|
||||
import type { RequestHelmChartVersions } from "../../../common/k8s-api/endpoints/helm-charts.api/request-versions.injectable";
|
||||
@ -39,10 +37,6 @@ describe("opening dock tab for installing helm chart", () => {
|
||||
requestHelmChartValuesMock = jest.fn();
|
||||
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
windowDi.override(directoryForLensLocalStorageInjectable, () => ({
|
||||
get: () => "/some-directory-for-lens-local-storage",
|
||||
}));
|
||||
windowDi.override(hostedClusterIdInjectable, () => "some-cluster-id");
|
||||
windowDi.override(requestHelmChartsInjectable, () => requestHelmChartsMock);
|
||||
windowDi.override(requestHelmChartVersionsInjectable, () => requestHelmChartVersionsMock);
|
||||
windowDi.override(requestHelmChartReadmeInjectable, () => requestHelmChartReadmeMock);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { appPathsChannel } from "../../common/app-paths/app-paths-channel";
|
||||
import { appPathsChannel } from "../../common/app-paths/channel";
|
||||
import { getRequestChannelListenerInjectable } from "../utils/channel/channel-listeners/listener-tokens";
|
||||
import appPathsInjectable from "./impl.injectable";
|
||||
|
||||
|
||||
@ -8,8 +8,6 @@ import type { CatalogEntity } from "../../../common/catalog";
|
||||
import { loadFromOptions } from "../../../common/kube-helpers";
|
||||
import type { Cluster } from "../../../common/cluster/cluster";
|
||||
import { getDiForUnitTesting } from "../../getDiForUnitTesting";
|
||||
import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data.injectable";
|
||||
import directoryForTempInjectable from "../../../common/app-paths/directory-for-temp.injectable";
|
||||
import { iter, strictGet } from "../../../common/utils";
|
||||
import type { ComputeKubeconfigDiff } from "../kubeconfig-sync/compute-diff.injectable";
|
||||
import computeKubeconfigDiffInjectable from "../kubeconfig-sync/compute-diff.injectable";
|
||||
@ -33,6 +31,10 @@ import createReadFileStreamInjectable from "../../../common/fs/create-read-file-
|
||||
import kubectlBinaryNameInjectable from "../../kubectl/binary-name.injectable";
|
||||
import kubectlDownloadingNormalizedArchInjectable from "../../kubectl/normalized-arch.injectable";
|
||||
import normalizedPlatformInjectable from "../../../common/vars/normalized-platform.injectable";
|
||||
import { runManyFor } from "../../../common/runnable/run-many-for";
|
||||
import { runManySyncFor } from "../../../common/runnable/run-many-sync-for";
|
||||
import { beforeApplicationIsLoadingInjectionToken } from "../../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
||||
import { beforeElectronIsReadyInjectionToken } from "../../start-main-application/runnable-tokens/before-electron-is-ready-injection-token";
|
||||
|
||||
describe("kubeconfig-sync.source tests", () => {
|
||||
let computeKubeconfigDiff: ComputeKubeconfigDiff;
|
||||
@ -46,16 +48,18 @@ describe("kubeconfig-sync.source tests", () => {
|
||||
|
||||
clusters = new Map();
|
||||
di.override(getClusterByIdInjectable, () => id => clusters.get(id));
|
||||
di.override(directoryForUserDataInjectable, () => ({
|
||||
get: () => "some-directory-for-user-data",
|
||||
}));
|
||||
di.override(directoryForTempInjectable, () => ({
|
||||
get: () => "some-directory-for-temp",
|
||||
}));
|
||||
di.override(kubectlBinaryNameInjectable, () => "kubectl");
|
||||
di.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64");
|
||||
di.override(normalizedPlatformInjectable, () => "darwin");
|
||||
|
||||
const runManySync = runManySyncFor(di);
|
||||
const runMany = runManyFor(di);
|
||||
const runAllBeforeElectronIsReady = runManySync(beforeElectronIsReadyInjectionToken);
|
||||
const runAllBeforeApplicationIsLoading = runMany(beforeApplicationIsLoadingInjectionToken);
|
||||
|
||||
runAllBeforeElectronIsReady();
|
||||
await runAllBeforeApplicationIsLoading();
|
||||
|
||||
kubeconfigSyncs = observable.map();
|
||||
|
||||
di.override(kubeconfigSyncsInjectable, () => kubeconfigSyncs);
|
||||
|
||||
@ -14,7 +14,6 @@ import asyncFn from "@async-fn/jest";
|
||||
import parseRequestInjectable from "./parse-request.injectable";
|
||||
import { contentTypes } from "./router-content-types";
|
||||
import mockFs from "mock-fs";
|
||||
import directoryForUserDataInjectable from "../../common/app-paths/directory-for-user-data.injectable";
|
||||
import type { Route } from "./route";
|
||||
import type { SetRequired } from "type-fest";
|
||||
import normalizedPlatformInjectable from "../../common/vars/normalized-platform.injectable";
|
||||
@ -22,6 +21,10 @@ import kubectlBinaryNameInjectable from "../kubectl/binary-name.injectable";
|
||||
import kubectlDownloadingNormalizedArchInjectable from "../kubectl/normalized-arch.injectable";
|
||||
import fsInjectable from "../../common/fs/fs.injectable";
|
||||
import { runInAction } from "mobx";
|
||||
import { runManyFor } from "../../common/runnable/run-many-for";
|
||||
import { runManySyncFor } from "../../common/runnable/run-many-sync-for";
|
||||
import { beforeApplicationIsLoadingInjectionToken } from "../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
||||
import { beforeElectronIsReadyInjectionToken } from "../start-main-application/runnable-tokens/before-electron-is-ready-injection-token";
|
||||
|
||||
describe("router", () => {
|
||||
let router: Router;
|
||||
@ -39,13 +42,18 @@ describe("router", () => {
|
||||
payload: "some-payload",
|
||||
mime: "some-mime",
|
||||
}));
|
||||
di.override(directoryForUserDataInjectable, () => ({
|
||||
get: () => "some-directory-for-user-data",
|
||||
}));
|
||||
di.override(kubectlBinaryNameInjectable, () => "kubectl");
|
||||
di.override(kubectlDownloadingNormalizedArchInjectable, () => "amd64");
|
||||
di.override(normalizedPlatformInjectable, () => "darwin");
|
||||
|
||||
const runManySync = runManySyncFor(di);
|
||||
const runMany = runManyFor(di);
|
||||
const runAllBeforeElectronIsReady = runManySync(beforeElectronIsReadyInjectionToken);
|
||||
const runAllBeforeApplicationIsLoading = runMany(beforeApplicationIsLoadingInjectionToken);
|
||||
|
||||
runAllBeforeElectronIsReady();
|
||||
await runAllBeforeApplicationIsLoading();
|
||||
|
||||
const injectable = getInjectable({
|
||||
id: "some-route",
|
||||
|
||||
|
||||
@ -5,13 +5,15 @@
|
||||
|
||||
import type { DiContainer } from "@ogre-tools/injectable";
|
||||
import { WebSocket } from "ws";
|
||||
import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data.injectable";
|
||||
import type { Cluster } from "../../../common/cluster/cluster";
|
||||
import { runManyFor } from "../../../common/runnable/run-many-for";
|
||||
import { runManySyncFor } from "../../../common/runnable/run-many-sync-for";
|
||||
import platformInjectable from "../../../common/vars/platform.injectable";
|
||||
import { getDiForUnitTesting } from "../../getDiForUnitTesting";
|
||||
import createKubectlInjectable from "../../kubectl/create-kubectl.injectable";
|
||||
import type { Kubectl } from "../../kubectl/kubectl";
|
||||
import buildVersionInjectable from "../../vars/build-version/build-version.injectable";
|
||||
import { beforeApplicationIsLoadingInjectionToken } from "../../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
||||
import { beforeElectronIsReadyInjectionToken } from "../../start-main-application/runnable-tokens/before-electron-is-ready-injection-token";
|
||||
import type { OpenShellSession } from "../create-shell-session.injectable";
|
||||
import type { SpawnPty } from "../spawn-pty.injectable";
|
||||
import spawnPtyInjectable from "../spawn-pty.injectable";
|
||||
@ -20,17 +22,18 @@ import openLocalShellSessionInjectable from "./open.injectable";
|
||||
describe("technical unit tests for local shell sessions", () => {
|
||||
let di: DiContainer;
|
||||
|
||||
beforeEach(() => {
|
||||
beforeEach(async () => {
|
||||
di = getDiForUnitTesting({
|
||||
doGeneralOverrides: true,
|
||||
});
|
||||
|
||||
di.override(directoryForUserDataInjectable, () => ({
|
||||
get: () => "/some-directory-for-user-data",
|
||||
}));
|
||||
di.override(buildVersionInjectable, () => ({
|
||||
get: () => "1.1.1",
|
||||
}));
|
||||
const runManySync = runManySyncFor(di);
|
||||
const runMany = runManyFor(di);
|
||||
const runAllBeforeElectronIsReady = runManySync(beforeElectronIsReadyInjectionToken);
|
||||
const runAllBeforeApplicationIsLoading = runMany(beforeApplicationIsLoadingInjectionToken);
|
||||
|
||||
runAllBeforeElectronIsReady();
|
||||
await runAllBeforeApplicationIsLoading();
|
||||
});
|
||||
|
||||
describe("when on windows", () => {
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import userStoreFileNameMigrationInjectable from "../../common/user-store/file-name-migration.injectable";
|
||||
import userStoreInjectable from "../../common/user-store/user-store.injectable";
|
||||
import { initDefaultUpdateChannelOnMainInjectable } from "../../features/application-update/common/selected-update-channel/default-update-channel.injectable";
|
||||
import { beforeApplicationIsLoadingInjectionToken } from "../start-main-application/runnable-tokens/before-application-is-loading-injection-token";
|
||||
import { initializeBuildVersionOnMainInjectable } from "../vars/build-version/build-version.injectable";
|
||||
|
||||
const initUserStoreInjectable = getInjectable({
|
||||
id: "init-user-store",
|
||||
@ -20,7 +20,7 @@ const initUserStoreInjectable = getInjectable({
|
||||
await userStoreFileNameMigration();
|
||||
userStore.load();
|
||||
},
|
||||
runAfter: di.inject(initializeBuildVersionOnMainInjectable),
|
||||
runAfter: di.inject(initDefaultUpdateChannelOnMainInjectable),
|
||||
};
|
||||
},
|
||||
injectionToken: beforeApplicationIsLoadingInjectionToken,
|
||||
|
||||
@ -14,9 +14,16 @@ import { getDiForUnitTesting } from "../../../getDiForUnitTesting";
|
||||
import dockStoreInjectable from "../dock/store.injectable";
|
||||
import type { DiRender } from "../../test-utils/renderFor";
|
||||
import { renderFor } from "../../test-utils/renderFor";
|
||||
import directoryForUserDataInjectable from "../../../../common/app-paths/directory-for-user-data.injectable";
|
||||
import assert from "assert";
|
||||
import hostedClusterIdInjectable from "../../../cluster-frame-context/hosted-cluster-id.injectable";
|
||||
import { beforeFrameStartsInjectionToken } from "../../../before-frame-starts/before-frame-starts-injection-token";
|
||||
import requestFromChannelInjectable from "../../../utils/channel/request-from-channel.injectable";
|
||||
import { appPathsChannel } from "../../../../common/app-paths/channel";
|
||||
import type { AppPaths } from "../../../../common/app-paths/token";
|
||||
import type { RequestChannel } from "../../../../common/utils/channel/request-channel-listener-injection-token";
|
||||
import { runManyFor } from "../../../../common/runnable/run-many-for";
|
||||
import { syncBoxInitialValueChannel } from "../../../../common/utils/sync-box/channels";
|
||||
import { buildVersionChannel } from "../../../../common/vars/build-version/channel";
|
||||
|
||||
jest.mock("electron", () => ({
|
||||
app: {
|
||||
@ -75,9 +82,43 @@ describe("<DockTabs />", () => {
|
||||
render = renderFor(di);
|
||||
|
||||
di.override(hostedClusterIdInjectable, () => "some-cluster-id");
|
||||
di.override(directoryForUserDataInjectable, () => ({
|
||||
get: () => "/some-test-suite-specific-directory-for-user-data",
|
||||
}));
|
||||
di.override(requestFromChannelInjectable, () => async (channel: RequestChannel<any, any>) => {
|
||||
if (channel === appPathsChannel) {
|
||||
return {
|
||||
appData: `/some-electron-app-path-for-app-data`,
|
||||
home: `/some-electron-app-path-for-home`,
|
||||
userData: `/some-electron-app-path-for-user-data`,
|
||||
cache: `/some-electron-app-path-for-cache`,
|
||||
temp: `/some-electron-app-path-for-temp`,
|
||||
exe: `/some-electron-app-path-for-exe`,
|
||||
module: `/some-electron-app-path-for-module`,
|
||||
desktop: `/some-electron-app-path-for-desktop`,
|
||||
documents: `/some-electron-app-path-for-documents`,
|
||||
downloads: `/some-electron-app-path-for-downloads`,
|
||||
music: `/some-electron-app-path-for-music`,
|
||||
pictures: `/some-electron-app-path-for-pictures`,
|
||||
videos: `/some-electron-app-path-for-videos`,
|
||||
logs: `/some-electron-app-path-for-logs`,
|
||||
crashDumps: `/some-electron-app-path-for-crash-dumps`,
|
||||
recent: `/some-electron-app-path-for-recent`,
|
||||
} as AppPaths;
|
||||
}
|
||||
|
||||
if (channel === syncBoxInitialValueChannel) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (channel === buildVersionChannel) {
|
||||
return "1.1.1";
|
||||
}
|
||||
|
||||
throw new Error(`tried to request data from id="${channel.id}" without override`);
|
||||
});
|
||||
|
||||
const runMany = runManyFor(di);
|
||||
const runAllBeforeFrameStarts = runMany(beforeFrameStartsInjectionToken);
|
||||
|
||||
await runAllBeforeFrameStarts();
|
||||
|
||||
dockStore = di.inject(dockStoreInjectable);
|
||||
|
||||
|
||||
@ -9,7 +9,6 @@ import type { IObservableArray } from "mobx";
|
||||
import { computed, observable } from "mobx";
|
||||
import type { StatusBarItems } from "./status-bar-items.injectable";
|
||||
import statusBarItemsInjectable from "./status-bar-items.injectable";
|
||||
import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data.injectable";
|
||||
import type { ApplicationBuilder } from "../test-utils/get-application-builder";
|
||||
import { getApplicationBuilder } from "../test-utils/get-application-builder";
|
||||
import getRandomIdInjectable from "../../../common/utils/get-random-id.injectable";
|
||||
@ -26,9 +25,6 @@ describe("<StatusBar />", () => {
|
||||
builder.beforeWindowStart((windowDi) => {
|
||||
windowDi.unoverride(getRandomIdInjectable);
|
||||
windowDi.permitSideEffects(getRandomIdInjectable);
|
||||
windowDi.override(directoryForUserDataInjectable, () => ({
|
||||
get: () => "some-directory-for-user-data",
|
||||
}));
|
||||
});
|
||||
|
||||
builder.extensions.enable({
|
||||
|
||||
Loading…
Reference in New Issue
Block a user