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

chore: Improve KubeObject tests

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

View File

@ -6,35 +6,14 @@ describe("kube object tests", () => {
() => () =>
new KubeObject({ new KubeObject({
apiVersion: "metrics.k8s.io/v1beta1", apiVersion: "metrics.k8s.io/v1beta1",
containers: [
{
name: "cert-manager",
usage: {
cpu: "472721n",
memory: "74404Ki",
},
},
],
kind: "PodMetrics", kind: "PodMetrics",
metadata: { metadata: {
creationTimestamp: "2023-05-24T14:17:01Z", creationTimestamp: "2023-05-24T14:17:01Z",
labels: {
app: "cert-manager",
"app.kubernetes.io/component": "controller",
"app.kubernetes.io/instance": "cert-manager",
"app.kubernetes.io/managed-by": "Helm",
"app.kubernetes.io/name": "cert-manager",
"app.kubernetes.io/version": "v1.5.5",
"helm.sh/chart": "cert-manager-v1.5.5",
"pod-template-hash": "54cbdfb45c",
},
name: "cert-manager-54cbdfb45c-n4kp9", name: "cert-manager-54cbdfb45c-n4kp9",
namespace: "cert-manager", namespace: "cert-manager",
selfLink: "/apis/metrics.k8s.io/v1beta1/namespaces/cert-manager/pods/cert-manager-54cbdfb45c-n4kp9", selfLink: "/apis/metrics.k8s.io/v1beta1/namespaces/cert-manager/pods/cert-manager-54cbdfb45c-n4kp9",
resourceVersion: "123", resourceVersion: "123",
}, },
timestamp: "2023-05-24T14:16:39Z",
window: "16s",
}), }),
).not.toThrow(); ).not.toThrow();
}); });
@ -44,35 +23,14 @@ describe("kube object tests", () => {
() => () =>
new KubeObject({ new KubeObject({
apiVersion: "metrics.k8s.io/v1beta1", apiVersion: "metrics.k8s.io/v1beta1",
containers: [
{
name: "cert-manager",
usage: {
cpu: "472721n",
memory: "74404Ki",
},
},
],
kind: "PodMetrics", kind: "PodMetrics",
metadata: { metadata: {
creationTimestamp: "2023-05-24T14:17:01Z", creationTimestamp: "2023-05-24T14:17:01Z",
labels: {
app: "cert-manager",
"app.kubernetes.io/component": "controller",
"app.kubernetes.io/instance": "cert-manager",
"app.kubernetes.io/managed-by": "Helm",
"app.kubernetes.io/name": "cert-manager",
"app.kubernetes.io/version": "v1.5.5",
"helm.sh/chart": "cert-manager-v1.5.5",
"pod-template-hash": "54cbdfb45c",
},
name: "cert-manager-54cbdfb45c-n4kp9", name: "cert-manager-54cbdfb45c-n4kp9",
namespace: "cert-manager", namespace: "cert-manager",
selfLink: "/apis/metrics.k8s.io/v1beta1/namespaces/cert-manager/pods/cert-manager-54cbdfb45c-n4kp9", selfLink: "/apis/metrics.k8s.io/v1beta1/namespaces/cert-manager/pods/cert-manager-54cbdfb45c-n4kp9",
uid: "123", uid: "123",
}, },
timestamp: "2023-05-24T14:16:39Z",
window: "16s",
}), }),
).not.toThrow(); ).not.toThrow();
}); });
@ -82,35 +40,78 @@ describe("kube object tests", () => {
() => () =>
new KubeObject({ new KubeObject({
apiVersion: "metrics.k8s.io/v1beta1", apiVersion: "metrics.k8s.io/v1beta1",
containers: [
{
name: "cert-manager",
usage: {
cpu: "472721n",
memory: "74404Ki",
},
},
],
kind: "PodMetrics", kind: "PodMetrics",
metadata: { metadata: {
creationTimestamp: "2023-05-24T14:17:01Z", creationTimestamp: "2023-05-24T14:17:01Z",
labels: {
app: "cert-manager",
"app.kubernetes.io/component": "controller",
"app.kubernetes.io/instance": "cert-manager",
"app.kubernetes.io/managed-by": "Helm",
"app.kubernetes.io/name": "cert-manager",
"app.kubernetes.io/version": "v1.5.5",
"helm.sh/chart": "cert-manager-v1.5.5",
"pod-template-hash": "54cbdfb45c",
},
name: "cert-manager-54cbdfb45c-n4kp9", name: "cert-manager-54cbdfb45c-n4kp9",
namespace: "cert-manager", namespace: "cert-manager",
selfLink: "/apis/metrics.k8s.io/v1beta1/namespaces/cert-manager/pods/cert-manager-54cbdfb45c-n4kp9", selfLink: "/apis/metrics.k8s.io/v1beta1/namespaces/cert-manager/pods/cert-manager-54cbdfb45c-n4kp9",
}, },
timestamp: "2023-05-24T14:16:39Z",
window: "16s",
}), }),
).not.toThrow(); ).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",
},
});
expect(obj.getId()).toEqual("foobar");
});
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",
},
});
expect(obj.getId()).toEqual(
"/apis/metrics.k8s.io/v1beta1/namespaces/cert-manager/pods/cert-manager-54cbdfb45c-n4kp9",
);
});
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",
},
});
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",
},
});
expect(obj.getResourceVersion()).toEqual("");
});
}); });