diff --git a/src/common/__tests__/search-store.test.ts b/src/common/__tests__/search-store.test.ts index ac5f13e7cf..b4c99b7e19 100644 --- a/src/common/__tests__/search-store.test.ts +++ b/src/common/__tests__/search-store.test.ts @@ -23,6 +23,12 @@ import { SearchStore } from "../search-store"; import { Console } from "console"; import { stdout, stderr } from "process"; +jest.mock("electron", () => ({ + app: { + getPath: () => "/foo", + }, +})); + console = new Console(stdout, stderr); let searchStore: SearchStore = null; diff --git a/src/main/__test__/kube-auth-proxy.test.ts b/src/main/__test__/kube-auth-proxy.test.ts index 42353a2697..5006859637 100644 --- a/src/main/__test__/kube-auth-proxy.test.ts +++ b/src/main/__test__/kube-auth-proxy.test.ts @@ -44,6 +44,12 @@ jest.mock("winston", () => ({ } })); +jest.mock("electron", () => ({ + app: { + getPath: () => "/foo", + }, +})); + jest.mock("../../common/ipc"); jest.mock("child_process"); jest.mock("tcp-port-used"); diff --git a/src/main/__test__/kubeconfig-manager.test.ts b/src/main/__test__/kubeconfig-manager.test.ts index 40aaf558f5..0d0bab04ad 100644 --- a/src/main/__test__/kubeconfig-manager.test.ts +++ b/src/main/__test__/kubeconfig-manager.test.ts @@ -28,6 +28,12 @@ const logger = { crit: jest.fn(), }; +jest.mock("electron", () => ({ + app: { + getPath: () => `/tmp`, + }, +})); + jest.mock("winston", () => ({ format: { colorize: jest.fn(), @@ -91,7 +97,9 @@ describe("kubeconfig manager tests", () => { contextName: "minikube", kubeConfigPath: "minikube-config.yml", }); - contextHandler = jest.fn() as any; + contextHandler = { + ensureServer: () => Promise.resolve(), + } as any; jest.spyOn(KubeconfigManager.prototype, "resolveProxyUrl", "get").mockReturnValue("http://127.0.0.1:9191/foo"); }); @@ -103,7 +111,7 @@ describe("kubeconfig manager tests", () => { const kubeConfManager = new KubeconfigManager(cluster, contextHandler); expect(logger.error).not.toBeCalled(); - expect(await kubeConfManager.getPath()).toBe(`tmp${path.sep}kubeconfig-foo`); + expect(await kubeConfManager.getPath()).toBe(`${path.sep}tmp${path.sep}kubeconfig-foo`); // this causes an intermittent "ENXIO: no such device or address, read" error // const file = await fse.readFile(await kubeConfManager.getPath()); const file = fse.readFileSync(await kubeConfManager.getPath()); diff --git a/src/main/kubeconfig-manager.ts b/src/main/kubeconfig-manager.ts index 4332b69325..f06ee014c7 100644 --- a/src/main/kubeconfig-manager.ts +++ b/src/main/kubeconfig-manager.ts @@ -71,6 +71,7 @@ export class KubeconfigManager { await this.contextHandler.ensureServer(); this.tempFile = await this.createProxyKubeconfig(); } catch (err) { + console.log(err); logger.error(`Failed to created temp config for auth-proxy`, { err }); } } @@ -86,7 +87,7 @@ export class KubeconfigManager { protected async createProxyKubeconfig(): Promise { const { configDir, cluster } = this; const { contextName, kubeConfigPath, id } = cluster; - const tempFile = path.join(configDir, `kubeconfig-${id}`); + const tempFile = path.normalize(path.join(configDir, `kubeconfig-${id}`)); const kubeConfig = loadConfig(kubeConfigPath); const proxyConfig: Partial = { currentContext: contextName, diff --git a/src/renderer/components/+workloads-pods/__tests__/pod-tolerations.test.tsx b/src/renderer/components/+workloads-pods/__tests__/pod-tolerations.test.tsx index c353a6e5e3..30ef2e98e9 100644 --- a/src/renderer/components/+workloads-pods/__tests__/pod-tolerations.test.tsx +++ b/src/renderer/components/+workloads-pods/__tests__/pod-tolerations.test.tsx @@ -25,6 +25,12 @@ import { fireEvent, render } from "@testing-library/react"; import type { IToleration } from "../../../api/workload-kube-object"; import { PodTolerations } from "../pod-tolerations"; +jest.mock("electron", () => ({ + app: { + getPath: () => "/foo", + }, +})); + const tolerations: IToleration[] =[ { key: "CriticalAddonsOnly", diff --git a/src/renderer/components/cluster-manager/bottom-bar.test.tsx b/src/renderer/components/cluster-manager/bottom-bar.test.tsx index 590e9534f5..eceb02697a 100644 --- a/src/renderer/components/cluster-manager/bottom-bar.test.tsx +++ b/src/renderer/components/cluster-manager/bottom-bar.test.tsx @@ -23,6 +23,12 @@ import React from "react"; import { render } from "@testing-library/react"; import "@testing-library/jest-dom/extend-expect"; +jest.mock("electron", () => ({ + app: { + getPath: () => "/foo", + }, +})); + import { BottomBar } from "./bottom-bar"; jest.mock("../../../extensions/registries"); import { statusBarRegistry } from "../../../extensions/registries"; diff --git a/src/renderer/components/dock/__test__/dock-tabs.test.tsx b/src/renderer/components/dock/__test__/dock-tabs.test.tsx index 37cb7fdc8a..0c5ae7defd 100644 --- a/src/renderer/components/dock/__test__/dock-tabs.test.tsx +++ b/src/renderer/components/dock/__test__/dock-tabs.test.tsx @@ -26,6 +26,12 @@ import "@testing-library/jest-dom/extend-expect"; import { DockTabs } from "../dock-tabs"; import { dockStore, IDockTab, TabKind } from "../dock.store"; +jest.mock("electron", () => ({ + app: { + getPath: () => "/foo", + }, +})); + const onChangeTab = jest.fn(); const getComponent = () => ( diff --git a/src/renderer/components/dock/__test__/log-resource-selector.test.tsx b/src/renderer/components/dock/__test__/log-resource-selector.test.tsx index 283f5e7d79..62566b868a 100644 --- a/src/renderer/components/dock/__test__/log-resource-selector.test.tsx +++ b/src/renderer/components/dock/__test__/log-resource-selector.test.tsx @@ -31,6 +31,12 @@ import { dockerPod, deploymentPod1 } from "./pod.mock"; import { ThemeStore } from "../../../theme.store"; import { UserStore } from "../../../../common/user-store"; +jest.mock("electron", () => ({ + app: { + getPath: () => "/foo", + }, +})); + const getComponent = (tabData: LogTabData) => { return ( ({ + app: { + getPath: () => "/foo", + }, +})); podsStore.items.push(new Pod(dockerPod)); podsStore.items.push(new Pod(deploymentPod1));