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

chore: Simplify KubeObject tests to use stub data

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2023-05-25 09:44:21 -04:00
parent 723e8452cf
commit e7b030e2cd

View File

@ -1,83 +1,53 @@
import { KubeObject } from "./kube-object"; 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", () => { describe("kube object tests", () => {
it("should allow an object to be created when missing uid", () => { it("should allow an object to be created when missing uid", () => {
expect( const data = getStubData();
() =>
new KubeObject({ delete data.metadata.uid;
apiVersion: "metrics.k8s.io/v1beta1", expect(() => new KubeObject(data)).not.toThrow();
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",
resourceVersion: "123",
},
}),
).not.toThrow();
}); });
it("should allow an object to be created when missing resourceVersion", () => { it("should allow an object to be created when missing resourceVersion", () => {
expect( const data = getStubData();
() =>
new KubeObject({ delete data.metadata.resourceVersion;
apiVersion: "metrics.k8s.io/v1beta1", expect(() => new KubeObject(data)).not.toThrow();
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",
},
}),
).not.toThrow();
}); });
it("should allow an object to be created when missing resourceVersion and uid", () => { it("should allow an object to be created when missing resourceVersion and uid", () => {
expect( const data = getStubData();
() =>
new KubeObject({ delete data.metadata.uid;
apiVersion: "metrics.k8s.io/v1beta1", delete data.metadata.resourceVersion;
kind: "PodMetrics", expect(() => new KubeObject(data)).not.toThrow();
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",
},
}),
).not.toThrow();
}); });
it("KubeObject.getId() should return the uid if present", () => { it("KubeObject.getId() should return the uid if present", () => {
const obj = new KubeObject({ const data = getStubData();
apiVersion: "metrics.k8s.io/v1beta1", const obj = new KubeObject(data);
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: "foobar",
},
});
expect(obj.getId()).toEqual("foobar"); expect(obj.getId()).toEqual("123");
}); });
it("KubeObject.getId() should return the selfLink if uid is missing", () => { it("KubeObject.getId() should return the selfLink if uid is missing", () => {
const obj = new KubeObject({ const data = getStubData();
apiVersion: "metrics.k8s.io/v1beta1",
kind: "PodMetrics", delete data.metadata.uid;
metadata: { const obj = new KubeObject(data);
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",
},
});
expect(obj.getId()).toEqual( expect(obj.getId()).toEqual(
"/apis/metrics.k8s.io/v1beta1/namespaces/cert-manager/pods/cert-manager-54cbdfb45c-n4kp9", "/apis/metrics.k8s.io/v1beta1/namespaces/cert-manager/pods/cert-manager-54cbdfb45c-n4kp9",
@ -85,32 +55,17 @@ describe("kube object tests", () => {
}); });
it("KubeObject.getResourceVersion() should return the resourceVersion if it is present", () => { it("KubeObject.getResourceVersion() should return the resourceVersion if it is present", () => {
const obj = new KubeObject({ const data = getStubData();
apiVersion: "metrics.k8s.io/v1beta1", const obj = new KubeObject(data);
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",
resourceVersion: "foobar",
},
});
expect(obj.getResourceVersion()).toEqual("foobar"); expect(obj.getResourceVersion()).toEqual("foobar");
}); });
it("KubeObject.getResourceVersion() should return '' if the resourceVersion is missing", () => { it("KubeObject.getResourceVersion() should return '' if the resourceVersion is missing", () => {
const obj = new KubeObject({ const data = getStubData();
apiVersion: "metrics.k8s.io/v1beta1",
kind: "PodMetrics", delete data.metadata.resourceVersion;
metadata: { const obj = new KubeObject(data);
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",
},
});
expect(obj.getResourceVersion()).toEqual(""); expect(obj.getResourceVersion()).toEqual("");
}); });