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";
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("should allow an object to be created when missing uid", () => {
expect(
() =>
new KubeObject({
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",
resourceVersion: "123",
},
}),
).not.toThrow();
const data = getStubData();
delete data.metadata.uid;
expect(() => new KubeObject(data)).not.toThrow();
});
it("should allow an object to be created when missing resourceVersion", () => {
expect(
() =>
new KubeObject({
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",
},
}),
).not.toThrow();
const data = getStubData();
delete data.metadata.resourceVersion;
expect(() => new KubeObject(data)).not.toThrow();
});
it("should allow an object to be created when missing resourceVersion and uid", () => {
expect(
() =>
new KubeObject({
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",
},
}),
).not.toThrow();
const data = getStubData();
delete data.metadata.uid;
delete data.metadata.resourceVersion;
expect(() => new KubeObject(data)).not.toThrow();
});
it("KubeObject.getId() should return the uid if present", () => {
const obj = new KubeObject({
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: "foobar",
},
});
const data = getStubData();
const obj = new KubeObject(data);
expect(obj.getId()).toEqual("foobar");
expect(obj.getId()).toEqual("123");
});
it("KubeObject.getId() should return the selfLink if uid is missing", () => {
const obj = new KubeObject({
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",
},
});
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",
@ -85,32 +55,17 @@ describe("kube object tests", () => {
});
it("KubeObject.getResourceVersion() should return the resourceVersion if it is present", () => {
const obj = new KubeObject({
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",
resourceVersion: "foobar",
},
});
const data = getStubData();
const obj = new KubeObject(data);
expect(obj.getResourceVersion()).toEqual("foobar");
});
it("KubeObject.getResourceVersion() should return '' if the resourceVersion is missing", () => {
const obj = new KubeObject({
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",
},
});
const data = getStubData();
delete data.metadata.resourceVersion;
const obj = new KubeObject(data);
expect(obj.getResourceVersion()).toEqual("");
});