mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
chore: move kube-api related tests from core
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
parent
e8be89eb51
commit
7b8bd1e758
@ -1,51 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting";
|
|
||||||
import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable";
|
|
||||||
import apiKubeInjectable from "../../../renderer/k8s/api-kube.injectable";
|
|
||||||
import deploymentApiInjectable from "../endpoints/deployment.api.injectable";
|
|
||||||
import type { KubeJsonApi, DeploymentApi } from "@k8slens/kube-api";
|
|
||||||
|
|
||||||
describe("DeploymentApi", () => {
|
|
||||||
let deploymentApi: DeploymentApi;
|
|
||||||
let kubeJsonApi: jest.Mocked<KubeJsonApi>;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
const di = getDiForUnitTesting();
|
|
||||||
|
|
||||||
di.override(storesAndApisCanBeCreatedInjectable, () => 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);
|
|
||||||
|
|
||||||
deploymentApi = di.inject(deploymentApiInjectable);
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("scale", () => {
|
|
||||||
it("requests Kubernetes API with PATCH verb and correct amount of replicas", async () => {
|
|
||||||
await deploymentApi.scale({ namespace: "default", name: "deployment-1" }, 5);
|
|
||||||
|
|
||||||
expect(kubeJsonApi.patch).toHaveBeenCalledWith("/apis/apps/v1/namespaces/default/deployments/deployment-1/scale", {
|
|
||||||
data: {
|
|
||||||
spec: {
|
|
||||||
replicas: 5,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
headers: {
|
|
||||||
"content-type": "application/merge-patch+json",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { KubeJsonApi, DeploymentApi } from "@k8slens/kube-api";
|
||||||
|
|
||||||
|
describe("DeploymentApi", () => {
|
||||||
|
let deploymentApi: DeploymentApi;
|
||||||
|
let kubeJsonApi: jest.Mocked<KubeJsonApi>;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
kubeJsonApi = {
|
||||||
|
getResponse: jest.fn(),
|
||||||
|
get: jest.fn(),
|
||||||
|
post: jest.fn(),
|
||||||
|
put: jest.fn(),
|
||||||
|
patch: jest.fn(),
|
||||||
|
del: jest.fn(),
|
||||||
|
} as never;
|
||||||
|
|
||||||
|
deploymentApi = new DeploymentApi({
|
||||||
|
logger: {
|
||||||
|
info: jest.fn(),
|
||||||
|
debug: jest.fn(),
|
||||||
|
error: jest.fn(),
|
||||||
|
} as any,
|
||||||
|
maybeKubeApi: kubeJsonApi,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("scale", () => {
|
||||||
|
it("requests Kubernetes API with PATCH verb and correct amount of replicas", async () => {
|
||||||
|
await deploymentApi.scale({ namespace: "default", name: "deployment-1" }, 5);
|
||||||
|
|
||||||
|
expect(kubeJsonApi.patch).toHaveBeenCalledWith(
|
||||||
|
"/apis/apps/v1/namespaces/default/deployments/deployment-1/scale",
|
||||||
|
{
|
||||||
|
data: {
|
||||||
|
spec: {
|
||||||
|
replicas: 5,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
headers: {
|
||||||
|
"content-type": "application/merge-patch+json",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -3,32 +3,32 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable";
|
import { KubeJsonApi, StatefulSetApi } from "@k8slens/kube-api";
|
||||||
import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting";
|
|
||||||
import apiKubeInjectable from "../../../renderer/k8s/api-kube.injectable";
|
|
||||||
import statefulSetApiInjectable from "../endpoints/stateful-set.api.injectable";
|
|
||||||
import type { KubeJsonApi, StatefulSetApi } from "@k8slens/kube-api";
|
|
||||||
import type { AsyncFnMock } from "@async-fn/jest";
|
|
||||||
import asyncFn from "@async-fn/jest";
|
|
||||||
import { flushPromises } from "@k8slens/test-utils";
|
import { flushPromises } from "@k8slens/test-utils";
|
||||||
|
import asyncFn from "@async-fn/jest";
|
||||||
|
import type { AsyncFnMock } from "@async-fn/jest";
|
||||||
|
|
||||||
describe("StatefulSetApi", () => {
|
describe("StatefulSetApi", () => {
|
||||||
let statefulSetApi: StatefulSetApi;
|
let statefulSetApi: StatefulSetApi;
|
||||||
|
let kubeJsonApi: KubeJsonApi;
|
||||||
let kubeJsonApiPatchMock: AsyncFnMock<KubeJsonApi["patch"]>;
|
let kubeJsonApiPatchMock: AsyncFnMock<KubeJsonApi["patch"]>;
|
||||||
let kubeJsonApiGetMock: AsyncFnMock<KubeJsonApi["get"]>;
|
let kubeJsonApiGetMock: AsyncFnMock<KubeJsonApi["get"]>;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
const di = getDiForUnitTesting();
|
kubeJsonApiGetMock = asyncFn<KubeJsonApi["get"]>();
|
||||||
|
kubeJsonApiPatchMock = asyncFn<KubeJsonApi["patch"]>();
|
||||||
di.override(storesAndApisCanBeCreatedInjectable, () => true);
|
kubeJsonApi = {
|
||||||
kubeJsonApiPatchMock = asyncFn();
|
|
||||||
kubeJsonApiGetMock = asyncFn();
|
|
||||||
di.override(apiKubeInjectable, () => ({
|
|
||||||
get: kubeJsonApiGetMock,
|
get: kubeJsonApiGetMock,
|
||||||
patch: kubeJsonApiPatchMock,
|
patch: kubeJsonApiPatchMock,
|
||||||
} as Partial<KubeJsonApi> as KubeJsonApi));
|
} as Partial<KubeJsonApi> as KubeJsonApi;
|
||||||
|
statefulSetApi = new StatefulSetApi({
|
||||||
statefulSetApi = di.inject(statefulSetApiInjectable);
|
logger: {
|
||||||
|
info: jest.fn(),
|
||||||
|
debug: jest.fn(),
|
||||||
|
error: jest.fn(),
|
||||||
|
} as any,
|
||||||
|
maybeKubeApi: kubeJsonApi,
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("scale", () => {
|
describe("scale", () => {
|
||||||
@ -36,7 +36,9 @@ describe("StatefulSetApi", () => {
|
|||||||
const req = statefulSetApi.scale({ namespace: "default", name: "statefulset-1" }, 5);
|
const req = statefulSetApi.scale({ namespace: "default", name: "statefulset-1" }, 5);
|
||||||
|
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
expect(kubeJsonApiPatchMock).toHaveBeenCalledWith("/apis/apps/v1/namespaces/default/statefulsets/statefulset-1/scale", {
|
expect(kubeJsonApiPatchMock).toHaveBeenCalledWith(
|
||||||
|
"/apis/apps/v1/namespaces/default/statefulsets/statefulset-1/scale",
|
||||||
|
{
|
||||||
data: {
|
data: {
|
||||||
spec: {
|
spec: {
|
||||||
replicas: 5,
|
replicas: 5,
|
||||||
@ -47,7 +49,8 @@ describe("StatefulSetApi", () => {
|
|||||||
headers: {
|
headers: {
|
||||||
"content-type": "application/merge-patch+json",
|
"content-type": "application/merge-patch+json",
|
||||||
},
|
},
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
|
||||||
await kubeJsonApiPatchMock.resolve({});
|
await kubeJsonApiPatchMock.resolve({});
|
||||||
await req;
|
await req;
|
||||||
@ -57,8 +60,8 @@ describe("StatefulSetApi", () => {
|
|||||||
const req = statefulSetApi.getReplicas({ namespace: "default", name: "statefulset-1" });
|
const req = statefulSetApi.getReplicas({ namespace: "default", name: "statefulset-1" });
|
||||||
|
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
expect(kubeJsonApiGetMock).toHaveBeenCalledWith("/apis/apps/v1/namespaces/default/statefulsets/statefulset-1/scale");
|
expect(kubeJsonApi.get).toHaveBeenCalledWith("/apis/apps/v1/namespaces/default/statefulsets/statefulset-1/scale");
|
||||||
await kubeJsonApiGetMock.resolve({ status: { replicas: 10 }});
|
await kubeJsonApiGetMock.resolve({ status: { replicas: 10 } });
|
||||||
|
|
||||||
expect(await req).toBe(10);
|
expect(await req).toBe(10);
|
||||||
});
|
});
|
||||||
Loading…
Reference in New Issue
Block a user