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

Testing removing a regular namespace

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2023-02-09 17:18:28 +03:00
parent 6184325507
commit 9f0b4323db

View File

@ -3,11 +3,15 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type { AsyncFnMock } from "@async-fn/jest";
import asyncFn from "@async-fn/jest";
import type { DiContainer } from "@ogre-tools/injectable";
import { observable } from "mobx";
import directoryForKubeConfigsInjectable from "../../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable";
import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable";
import { Namespace } from "../../../common/k8s-api/endpoints";
import type { Fetch } from "../../../common/fetch/fetch.injectable";
import fetchInjectable from "../../../common/fetch/fetch.injectable";
import { Namespace, NamespaceApi } from "../../../common/k8s-api/endpoints";
import hostedClusterInjectable from "../../cluster-frame-context/hosted-cluster.injectable";
import createClusterInjectable from "../../cluster/create-cluster.injectable";
import { getDiForUnitTesting } from "../../getDiForUnitTesting";
@ -99,14 +103,19 @@ const levelDeepSubChildA = createNamespace("level-deep-subchild-a", {
"level-deep-subchild-a.tree.hnc.x-k8s.io/depth": "0",
});
const deleteMock = jest.spyOn(NamespaceApi.prototype, "delete")
.mockImplementation();
describe("NamespaceStore", () => {
let di: DiContainer;
let namespaceStore: NamespaceStore;
let fetchMock: AsyncFnMock<Fetch>;
beforeEach(async () => {
di = getDiForUnitTesting({ doGeneralOverrides: true });
fetchMock = asyncFn();
di.override(fetchInjectable, () => fetchMock);
di.override(directoryForUserDataInjectable, () => "/some-user-store-path");
di.override(directoryForKubeConfigsInjectable, () => "/some-kube-configs");
di.override(storesAndApisCanBeCreatedInjectable, () => true);
@ -202,4 +211,12 @@ describe("NamespaceStore", () => {
],
});
});
describe("when removing a full namespace", () => {
it("removes namespace", () => {
namespaceStore.remove(acmeGroup);
expect(deleteMock).toBeCalledWith({ name: "acme-org", namespace: undefined });
});
});
});