mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
added some tests for PodApi.evict(resourceDescriptor)
Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
1272039e52
commit
c416946fc2
@ -11,21 +11,32 @@ import { Deployment, Pod, PodApi } from "../endpoints";
|
||||
import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting";
|
||||
import type { Fetch } from "../../fetch/fetch.injectable";
|
||||
import fetchInjectable from "../../fetch/fetch.injectable";
|
||||
import type { CreateKubeApiForRemoteCluster } from "../create-kube-api-for-remote-cluster.injectable";
|
||||
import createKubeApiForRemoteClusterInjectable from "../create-kube-api-for-remote-cluster.injectable";
|
||||
import type {
|
||||
CreateKubeApiForRemoteCluster,
|
||||
} from "../create-kube-api-for-remote-cluster.injectable";
|
||||
import createKubeApiForRemoteClusterInjectable
|
||||
from "../create-kube-api-for-remote-cluster.injectable";
|
||||
import type { AsyncFnMock } from "@async-fn/jest";
|
||||
import asyncFn from "@async-fn/jest";
|
||||
import { flushPromises } from "@k8slens/test-utils";
|
||||
import createKubeJsonApiInjectable from "../create-kube-json-api.injectable";
|
||||
import type { IKubeWatchEvent } from "../kube-watch-event";
|
||||
import type { KubeJsonApiDataFor } from "../kube-object";
|
||||
import type { KubeJsonApiDataFor, KubeStatusData } from "../kube-object";
|
||||
import AbortController from "abort-controller";
|
||||
import setupAutoRegistrationInjectable from "../../../renderer/before-frame-starts/runnables/setup-auto-registration.injectable";
|
||||
import { createMockResponseFromStream, createMockResponseFromString } from "../../../test-utils/mock-responses";
|
||||
import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable";
|
||||
import directoryForUserDataInjectable from "../../app-paths/directory-for-user-data/directory-for-user-data.injectable";
|
||||
import hostedClusterInjectable from "../../../renderer/cluster-frame-context/hosted-cluster.injectable";
|
||||
import directoryForKubeConfigsInjectable from "../../app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable";
|
||||
import setupAutoRegistrationInjectable
|
||||
from "../../../renderer/before-frame-starts/runnables/setup-auto-registration.injectable";
|
||||
import {
|
||||
createMockResponseFromStream,
|
||||
createMockResponseFromString,
|
||||
} from "../../../test-utils/mock-responses";
|
||||
import storesAndApisCanBeCreatedInjectable
|
||||
from "../../../renderer/stores-apis-can-be-created.injectable";
|
||||
import directoryForUserDataInjectable
|
||||
from "../../app-paths/directory-for-user-data/directory-for-user-data.injectable";
|
||||
import hostedClusterInjectable
|
||||
from "../../../renderer/cluster-frame-context/hosted-cluster.injectable";
|
||||
import directoryForKubeConfigsInjectable
|
||||
from "../../app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable";
|
||||
import apiKubeInjectable from "../../../renderer/k8s/api-kube.injectable";
|
||||
import type { DiContainer } from "@ogre-tools/injectable";
|
||||
import deploymentApiInjectable from "../endpoints/deployment.api.injectable";
|
||||
@ -451,6 +462,54 @@ describe("KubeApi", () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("eviction-api as better replacement for pod.delete() request", () => {
|
||||
let evictRequest: Promise<string>;
|
||||
|
||||
beforeEach(async () => {
|
||||
evictRequest = api.evict({ name: "foo", namespace: "test" });
|
||||
});
|
||||
|
||||
it("requests evicting a pod in given namespace", () => {
|
||||
expect(fetchMock.mock.lastCall).toMatchObject([
|
||||
"http://127.0.0.1:9999/api-kube/api/v1/namespaces/test/pods/foo/eviction",
|
||||
{
|
||||
headers: {
|
||||
"content-type": "application/json",
|
||||
},
|
||||
method: "post",
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
it("should resolve the call with >=200 <300 http code", async () => {
|
||||
fetchMock.resolveSpecific(
|
||||
["http://127.0.0.1:9999/api-kube/api/v1/namespaces/test/pods/foo/eviction"],
|
||||
createMockResponseFromString("http://127.0.0.1:9999/api-kube/api/v1/namespaces/test/pods/foo/eviction", JSON.stringify({
|
||||
apiVersion: "policy/v1",
|
||||
kind: "Status",
|
||||
code: 201,
|
||||
status: "all good",
|
||||
} as KubeStatusData)),
|
||||
);
|
||||
|
||||
expect(await evictRequest).toBe("201: all good");
|
||||
});
|
||||
|
||||
it("should throw in case of error", async () => {
|
||||
fetchMock.resolveSpecific(
|
||||
["http://127.0.0.1:9999/api-kube/api/v1/namespaces/test/pods/foo/eviction"],
|
||||
createMockResponseFromString("http://127.0.0.1:9999/api-kube/api/v1/namespaces/test/pods/foo/eviction", JSON.stringify({
|
||||
apiVersion: "policy/v1",
|
||||
kind: "Status",
|
||||
code: 500,
|
||||
status: "something went wrong",
|
||||
} as KubeStatusData)),
|
||||
);
|
||||
|
||||
expect(async () => evictRequest).rejects.toBe("500: something went wrong");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("deleting namespaces (cluser scoped resource)", () => {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user