1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/packages/kube-object/src/kube-object.test.ts
Sebastian Malton 4e6b51e2ef chore: Rename KubeObject tests to better clarity
Signed-off-by: Sebastian Malton <sebastian@malton.name>
2023-05-25 09:51:40 -04:00

73 lines
2.3 KiB
TypeScript

import { KubeObject } from "./kube-object";
const getStubData = () => ({
apiVersion: "metrics.k8s.io/v1beta1",
kind: "PodMetrics",
metadata: {
creationTimestamp: "2023-05-24T14:17:01Z",
name: "cert-manager-54cbdfb45c-n4kp9",
namespace: "cert-manager",
selfLink: "/apis/metrics.k8s.io/v1beta1/namespaces/cert-manager/pods/cert-manager-54cbdfb45c-n4kp9",
uid: "123" as string | undefined,
resourceVersion: "foobar" as string | undefined,
},
});
describe("kube object tests", () => {
it("given '.metadata.uid' is missing, then KubeObject constructor does not throw", () => {
const data = getStubData();
delete data.metadata.uid;
expect(() => new KubeObject(data)).not.toThrow();
});
it("given '.metadata.resourceVersion' is missing, then KubeObject constructor does not throw", () => {
const data = getStubData();
delete data.metadata.resourceVersion;
expect(() => new KubeObject(data)).not.toThrow();
});
it("given both '.metadata.resourceVersion' and '.metadata.uid' are missing, then KubeObject constructor does not throw", () => {
const data = getStubData();
delete data.metadata.uid;
delete data.metadata.resourceVersion;
expect(() => new KubeObject(data)).not.toThrow();
});
it("given '.metadata.uid' exist, then KubeObject.getId() should return it", () => {
const data = getStubData();
const obj = new KubeObject(data);
expect(obj.getId()).toEqual("123");
});
it("given '.metadata.uid' is missing, then KubeObject.getId() should return '.metadata.selfLink'", () => {
const data = getStubData();
delete data.metadata.uid;
const obj = new KubeObject(data);
expect(obj.getId()).toEqual(
"/apis/metrics.k8s.io/v1beta1/namespaces/cert-manager/pods/cert-manager-54cbdfb45c-n4kp9",
);
});
it("given '.metadata.resourceVersion' exist, then KubeObject.getResourceVersion() should return it", () => {
const data = getStubData();
const obj = new KubeObject(data);
expect(obj.getResourceVersion()).toEqual("foobar");
});
it("given '.metadata.resourceVersion' is missing, then KubeObject.getResourceVersion() should return an empty string", () => {
const data = getStubData();
delete data.metadata.resourceVersion;
const obj = new KubeObject(data);
expect(obj.getResourceVersion()).toEqual("");
});
});