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

fix tests

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2021-05-04 14:18:47 +03:00
parent 9f972ef088
commit bc9c4454b2
2 changed files with 61 additions and 10 deletions

View File

@ -286,9 +286,29 @@ users:
const minimalValidKubeConfig = JSON.stringify({ const minimalValidKubeConfig = JSON.stringify({
apiVersion: "v1", apiVersion: "v1",
clusters: [], clusters: [{
users: [], name: "minikube",
contexts: [], cluster: {
server: "https://192.168.64.3:8443",
},
}],
"current-context": "minikube",
contexts: [{
context: {
cluster: "minikube",
user: "minikube",
},
name: "minikube",
}],
users: [{
name: "minikube",
user: {
"client-certificate": "/Users/foo/.minikube/client.crt",
"client-key": "/Users/foo/.minikube/client.key",
}
}],
kind: "Config",
preferences: {},
}); });
describe("pre 2.0 config with an existing cluster", () => { describe("pre 2.0 config with an existing cluster", () => {
@ -319,7 +339,7 @@ describe("pre 2.0 config with an existing cluster", () => {
it("migrates to modern format with kubeconfig in a file", async () => { it("migrates to modern format with kubeconfig in a file", async () => {
const config = ClusterStore.getInstance().clustersList[0].kubeConfigPath; const config = ClusterStore.getInstance().clustersList[0].kubeConfigPath;
expect(fs.readFileSync(config, "utf8")).toContain(`"contexts":[]`); expect(fs.readFileSync(config, "utf8")).toContain(`"contexts":[`);
}); });
}); });
@ -391,8 +411,6 @@ describe("pre 2.6.0 config with a cluster that has arrays in auth config", () =>
const config = fs.readFileSync(file, "utf8"); const config = fs.readFileSync(file, "utf8");
const kc = yaml.safeLoad(config); const kc = yaml.safeLoad(config);
console.log(kc);
expect(kc.users[0].user["auth-provider"].config["access-token"]).toBe("should be string"); expect(kc.users[0].user["auth-provider"].config["access-token"]).toBe("should be string");
expect(kc.users[0].user["auth-provider"].config["expiry"]).toBe("should be string"); expect(kc.users[0].user["auth-provider"].config["expiry"]).toBe("should be string");
}); });

View File

@ -26,6 +26,7 @@ jest.mock("winston", () => ({
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");
//jest.mock("../utils/get-port");
import { Cluster } from "../cluster"; import { Cluster } from "../cluster";
import { KubeAuthProxy } from "../kube-auth-proxy"; import { KubeAuthProxy } from "../kube-auth-proxy";
@ -38,6 +39,7 @@ import { Readable } from "stream";
import { UserStore } from "../../common/user-store"; import { UserStore } from "../../common/user-store";
import { Console } from "console"; import { Console } from "console";
import { stdout, stderr } from "process"; import { stdout, stderr } from "process";
import mockFs from "mock-fs";
console = new Console(stdout, stderr); console = new Console(stdout, stderr);
@ -50,10 +52,41 @@ describe("kube auth proxy tests", () => {
jest.clearAllMocks(); jest.clearAllMocks();
UserStore.resetInstance(); UserStore.resetInstance();
UserStore.createInstance(); UserStore.createInstance();
const mockMinikubeConfig = {
"minikube-config.yml": JSON.stringify({
apiVersion: "v1",
clusters: [{
name: "minikube",
cluster: {
server: "https://192.168.64.3:8443",
},
}],
"current-context": "minikube",
contexts: [{
context: {
cluster: "minikube",
user: "minikube",
},
name: "minikube",
}],
users: [{
name: "minikube",
}],
kind: "Config",
preferences: {},
})
};
mockFs(mockMinikubeConfig);
});
afterEach(() => {
mockFs.restore();
}); });
it("calling exit multiple times shouldn't throw", async () => { it("calling exit multiple times shouldn't throw", async () => {
const kap = new KubeAuthProxy(new Cluster({ id: "foobar", kubeConfigPath: "fake-path.yml" }), {}); const kap = new KubeAuthProxy(new Cluster({ id: "foobar", kubeConfigPath: "minikube-config.yml", contextName: "minikube" }), {});
kap.exit(); kap.exit();
kap.exit(); kap.exit();
@ -85,6 +118,7 @@ describe("kube auth proxy tests", () => {
mockedCP.stdout = mock<Readable>(); mockedCP.stdout = mock<Readable>();
mockedCP.stdout.on.mockImplementation((event: string, listener: (message: any, sendHandle: any) => void): Readable => { mockedCP.stdout.on.mockImplementation((event: string, listener: (message: any, sendHandle: any) => void): Readable => {
listeners[`stdout/${event}`] = listener; listeners[`stdout/${event}`] = listener;
listeners[`stdout/${event}`]("Starting to serve on 127.0.0.1:9191");
return mockedCP.stdout; return mockedCP.stdout;
}); });
@ -94,9 +128,9 @@ describe("kube auth proxy tests", () => {
return mockedCP; return mockedCP;
}); });
mockWaitUntilUsed.mockReturnValueOnce(Promise.resolve()); mockWaitUntilUsed.mockReturnValueOnce(Promise.resolve());
const cluster = new Cluster({ id: "foobar", kubeConfigPath: "fake-path.yml" });
jest.spyOn(cluster, "apiUrl", "get").mockReturnValue("https://fake.k8s.internal"); const cluster = new Cluster({ id: "foobar", kubeConfigPath: "minikube-config.yml", contextName: "minikube" });
proxy = new KubeAuthProxy(cluster, {}); proxy = new KubeAuthProxy(cluster, {});
}); });
@ -123,7 +157,6 @@ describe("kube auth proxy tests", () => {
it("should call spawn and broadcast stdout serving info", async () => { it("should call spawn and broadcast stdout serving info", async () => {
await proxy.run(); await proxy.run();
listeners["stdout/data"]("Starting to serve on");
expect(mockBroadcastIpc).toBeCalledWith("kube-auth:foobar", { data: "Authentication proxy started\n" }); expect(mockBroadcastIpc).toBeCalledWith("kube-auth:foobar", { data: "Authentication proxy started\n" });
}); });