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

fix unit tests

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2021-05-17 11:11:06 -04:00
parent f9bf2a1864
commit 3a0e4bf20d
9 changed files with 53 additions and 3 deletions

View File

@ -23,6 +23,12 @@ import { SearchStore } from "../search-store";
import { Console } from "console"; import { Console } from "console";
import { stdout, stderr } from "process"; import { stdout, stderr } from "process";
jest.mock("electron", () => ({
app: {
getPath: () => "/foo",
},
}));
console = new Console(stdout, stderr); console = new Console(stdout, stderr);
let searchStore: SearchStore = null; let searchStore: SearchStore = null;

View File

@ -44,6 +44,12 @@ jest.mock("winston", () => ({
} }
})); }));
jest.mock("electron", () => ({
app: {
getPath: () => "/foo",
},
}));
jest.mock("../../common/ipc"); jest.mock("../../common/ipc");
jest.mock("child_process"); jest.mock("child_process");
jest.mock("tcp-port-used"); jest.mock("tcp-port-used");

View File

@ -28,6 +28,12 @@ const logger = {
crit: jest.fn(), crit: jest.fn(),
}; };
jest.mock("electron", () => ({
app: {
getPath: () => `/tmp`,
},
}));
jest.mock("winston", () => ({ jest.mock("winston", () => ({
format: { format: {
colorize: jest.fn(), colorize: jest.fn(),
@ -91,7 +97,9 @@ describe("kubeconfig manager tests", () => {
contextName: "minikube", contextName: "minikube",
kubeConfigPath: "minikube-config.yml", 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"); 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); const kubeConfManager = new KubeconfigManager(cluster, contextHandler);
expect(logger.error).not.toBeCalled(); 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 // this causes an intermittent "ENXIO: no such device or address, read" error
// const file = await fse.readFile(await kubeConfManager.getPath()); // const file = await fse.readFile(await kubeConfManager.getPath());
const file = fse.readFileSync(await kubeConfManager.getPath()); const file = fse.readFileSync(await kubeConfManager.getPath());

View File

@ -71,6 +71,7 @@ export class KubeconfigManager {
await this.contextHandler.ensureServer(); await this.contextHandler.ensureServer();
this.tempFile = await this.createProxyKubeconfig(); this.tempFile = await this.createProxyKubeconfig();
} catch (err) { } catch (err) {
console.log(err);
logger.error(`Failed to created temp config for auth-proxy`, { err }); logger.error(`Failed to created temp config for auth-proxy`, { err });
} }
} }
@ -86,7 +87,7 @@ export class KubeconfigManager {
protected async createProxyKubeconfig(): Promise<string> { protected async createProxyKubeconfig(): Promise<string> {
const { configDir, cluster } = this; const { configDir, cluster } = this;
const { contextName, kubeConfigPath, id } = cluster; 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 kubeConfig = loadConfig(kubeConfigPath);
const proxyConfig: Partial<KubeConfig> = { const proxyConfig: Partial<KubeConfig> = {
currentContext: contextName, currentContext: contextName,

View File

@ -25,6 +25,12 @@ import { fireEvent, render } from "@testing-library/react";
import type { IToleration } from "../../../api/workload-kube-object"; import type { IToleration } from "../../../api/workload-kube-object";
import { PodTolerations } from "../pod-tolerations"; import { PodTolerations } from "../pod-tolerations";
jest.mock("electron", () => ({
app: {
getPath: () => "/foo",
},
}));
const tolerations: IToleration[] =[ const tolerations: IToleration[] =[
{ {
key: "CriticalAddonsOnly", key: "CriticalAddonsOnly",

View File

@ -23,6 +23,12 @@ import React from "react";
import { render } from "@testing-library/react"; import { render } from "@testing-library/react";
import "@testing-library/jest-dom/extend-expect"; import "@testing-library/jest-dom/extend-expect";
jest.mock("electron", () => ({
app: {
getPath: () => "/foo",
},
}));
import { BottomBar } from "./bottom-bar"; import { BottomBar } from "./bottom-bar";
jest.mock("../../../extensions/registries"); jest.mock("../../../extensions/registries");
import { statusBarRegistry } from "../../../extensions/registries"; import { statusBarRegistry } from "../../../extensions/registries";

View File

@ -26,6 +26,12 @@ import "@testing-library/jest-dom/extend-expect";
import { DockTabs } from "../dock-tabs"; import { DockTabs } from "../dock-tabs";
import { dockStore, IDockTab, TabKind } from "../dock.store"; import { dockStore, IDockTab, TabKind } from "../dock.store";
jest.mock("electron", () => ({
app: {
getPath: () => "/foo",
},
}));
const onChangeTab = jest.fn(); const onChangeTab = jest.fn();
const getComponent = () => ( const getComponent = () => (

View File

@ -31,6 +31,12 @@ import { dockerPod, deploymentPod1 } from "./pod.mock";
import { ThemeStore } from "../../../theme.store"; import { ThemeStore } from "../../../theme.store";
import { UserStore } from "../../../../common/user-store"; import { UserStore } from "../../../../common/user-store";
jest.mock("electron", () => ({
app: {
getPath: () => "/foo",
},
}));
const getComponent = (tabData: LogTabData) => { const getComponent = (tabData: LogTabData) => {
return ( return (
<LogResourceSelector <LogResourceSelector

View File

@ -25,6 +25,11 @@ import { dockStore } from "../dock.store";
import { logTabStore } from "../log-tab.store"; import { logTabStore } from "../log-tab.store";
import { deploymentPod1, deploymentPod2, deploymentPod3, dockerPod } from "./pod.mock"; import { deploymentPod1, deploymentPod2, deploymentPod3, dockerPod } from "./pod.mock";
jest.mock("electron", () => ({
app: {
getPath: () => "/foo",
},
}));
podsStore.items.push(new Pod(dockerPod)); podsStore.items.push(new Pod(dockerPod));
podsStore.items.push(new Pod(deploymentPod1)); podsStore.items.push(new Pod(deploymentPod1));