From e7b030e2cd0892341f6973d902e6e6f9a8b0b54e Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Thu, 25 May 2023 09:44:21 -0400 Subject: [PATCH] chore: Simplify KubeObject tests to use stub data Signed-off-by: Sebastian Malton --- packages/kube-object/src/kube-object.test.ts | 123 ++++++------------- 1 file changed, 39 insertions(+), 84 deletions(-) diff --git a/packages/kube-object/src/kube-object.test.ts b/packages/kube-object/src/kube-object.test.ts index ab97fefd25..4688bfa821 100644 --- a/packages/kube-object/src/kube-object.test.ts +++ b/packages/kube-object/src/kube-object.test.ts @@ -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(""); });