mirror of
https://github.com/Azure/k8s-set-context.git
synced 2026-04-07 00:12:15 +08:00
- Use more modern TypeScript conventions - Use JavaScript Kubernetes Client - Add unit tests - Add integration tests - Add TypeScript compile verify workflow - Switch codeowners
48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
import fs from "fs";
|
|
import * as arc from "./kubeconfigs/arc";
|
|
import * as def from "./kubeconfigs/default";
|
|
import { Cluster } from "./types/cluster";
|
|
import { getKubeconfig, setContext } from "./utils";
|
|
|
|
describe("Utils", () => {
|
|
describe("get kubeconfig", () => {
|
|
test("it gets arc kubeconfig when type is arc", async () => {
|
|
const arcKubeconfig = "arckubeconfig";
|
|
jest
|
|
.spyOn(arc, "getArcKubeconfig")
|
|
.mockImplementation(async () => arcKubeconfig);
|
|
|
|
expect(await getKubeconfig(Cluster.ARC)).toBe(arcKubeconfig);
|
|
});
|
|
|
|
test("it defaults to default kubeconfig", async () => {
|
|
const defaultKubeconfig = "arckubeconfig";
|
|
jest
|
|
.spyOn(def, "getDefaultKubeconfig")
|
|
.mockImplementation(() => defaultKubeconfig);
|
|
|
|
expect(await getKubeconfig(undefined)).toBe(defaultKubeconfig);
|
|
expect(await getKubeconfig(Cluster.GENERIC)).toBe(defaultKubeconfig);
|
|
});
|
|
});
|
|
|
|
describe("set context", () => {
|
|
const kc = fs.readFileSync("tests/sample-kubeconfig.yml").toString();
|
|
|
|
test("it doesn't change kubeconfig without context", () => {
|
|
expect(setContext(kc)).toBe(kc);
|
|
});
|
|
|
|
test("it writes the context to the kubeconfig", () => {
|
|
process.env["INPUT_CONTEXT"] = "example";
|
|
|
|
const received = JSON.parse(setContext(kc));
|
|
const expectedKc = JSON.parse(
|
|
fs.readFileSync("tests/expected-kubeconfig.json").toString()
|
|
);
|
|
|
|
expect(received).toMatchObject(expectedKc);
|
|
});
|
|
});
|
|
});
|