diff --git a/src/common/k8s-api/__tests__/stateful-set.api.test.ts b/src/common/k8s-api/__tests__/stateful-set.api.test.ts index c1fe90d1f5..e6939b8b99 100644 --- a/src/common/k8s-api/__tests__/stateful-set.api.test.ts +++ b/src/common/k8s-api/__tests__/stateful-set.api.test.ts @@ -3,32 +3,39 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import { StatefulSet, StatefulSetApi } from "../endpoints/stateful-set.api"; +import createStoresAndApisInjectable from "../../../renderer/create-stores-apis.injectable"; +import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting"; +import apiKubeInjectable from "../api-kube.injectable"; +import type { StatefulSetApi } from "../endpoints"; +import statefulSetApiInjectable from "../endpoints/stateful-set.api.injectable"; import type { KubeJsonApi } from "../kube-json-api"; -class StatefulSetApiTest extends StatefulSetApi { - declare protected request: KubeJsonApi; - public setRequest(request: KubeJsonApi) { - this.request = request; - } -} - describe("StatefulSetApi", () => { + let statefulSetApi: StatefulSetApi; + let kubeJsonApi: jest.Mocked; + + beforeEach(() => { + const di = getDiForUnitTesting({ doGeneralOverrides: true }); + + di.override(createStoresAndApisInjectable, () => true); + kubeJsonApi = { + getResponse: jest.fn(), + get: jest.fn(), + post: jest.fn(), + put: jest.fn(), + patch: jest.fn(), + del: jest.fn(), + } as never; + di.override(apiKubeInjectable, () => kubeJsonApi); + + statefulSetApi = di.inject(statefulSetApiInjectable); + }); + describe("scale", () => { - const requestMock = { - patch: () => ({}), - } as unknown as KubeJsonApi; - - const sub = new StatefulSetApiTest({ objectConstructor: StatefulSet }); - - sub.setRequest(requestMock); - it("requests Kubernetes API with PATCH verb and correct amount of replicas", () => { - const patchSpy = jest.spyOn(requestMock, "patch"); + statefulSetApi.scale({ namespace: "default", name: "statefulset-1" }, 5); - sub.scale({ namespace: "default", name: "statefulset-1" }, 5); - - expect(patchSpy).toHaveBeenCalledWith("/apis/apps/v1/namespaces/default/statefulsets/statefulset-1/scale", { + expect(kubeJsonApi.patch).toHaveBeenCalledWith("/apis/apps/v1/namespaces/default/statefulsets/statefulset-1/scale", { data: { spec: { replicas: 5,