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

chore: Fixup kube-object-menu tests

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2023-04-21 12:13:36 -04:00
parent 535bac4df9
commit 6741b94220
4 changed files with 55 additions and 26 deletions

View File

@ -0,0 +1,18 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { computed } from "mobx";
import catalogEntityRegistryInjectable from "./registry.injectable";
const activeEntityIdInjectable = getInjectable({
id: "active-entity-id",
instantiate: (di) => {
const entityRegistry = di.inject(catalogEntityRegistryInjectable);
return computed(() => entityRegistry.activeEntity?.getId());
},
});
export default activeEntityIdInjectable;

View File

@ -5,16 +5,16 @@
import { getInjectable } from "@ogre-tools/injectable";
import { computed } from "mobx";
import getClusterByIdInjectable from "../../../../features/cluster/storage/common/get-by-id.injectable";
import catalogEntityRegistryInjectable from "./registry.injectable";
import activeEntityIdInjectable from "./active-entity-id.injectable";
const activeEntityInternalClusterInjectable = getInjectable({
id: "active-entity-internal-cluster",
instantiate: (di) => {
const getClusterById = di.inject(getClusterByIdInjectable);
const entityRegistry = di.inject(catalogEntityRegistryInjectable);
const activeEntityId = di.inject(activeEntityIdInjectable);
return computed(() => {
const entityId = entityRegistry.activeEntity?.getId();
const entityId = activeEntityId.get();
if (entityId) {
return getClusterById(entityId);

View File

@ -6,6 +6,7 @@ exports[`kube-object-menu given kube object renders 1`] = `
<div>
<ul
class="Menu MenuActions flex KubeObjectMenu toolbar gaps right bottom"
data-testid="menu-actions-for-kube-object-menu-for-some-uid"
id="menu-actions-for-kube-object-menu-for-some-uid"
>
<li>
@ -13,7 +14,7 @@ exports[`kube-object-menu given kube object renders 1`] = `
</li>
<li
class="MenuItem"
data-testid="menu-action-delete"
data-testid="menu-action-delete-for-/foo"
tabindex="0"
>
<i
@ -48,6 +49,7 @@ exports[`kube-object-menu given kube object when removing kube object renders 1`
<div>
<ul
class="Menu MenuActions flex KubeObjectMenu toolbar gaps right bottom"
data-testid="menu-actions-for-kube-object-menu-for-some-uid"
id="menu-actions-for-kube-object-menu-for-some-uid"
>
<li>
@ -55,7 +57,7 @@ exports[`kube-object-menu given kube object when removing kube object renders 1`
</li>
<li
class="MenuItem"
data-testid="menu-action-delete"
data-testid="menu-action-delete-for-/foo"
tabindex="0"
>
<i
@ -109,7 +111,7 @@ exports[`kube-object-menu given kube object when removing kube object renders 1`
</b>
from
<b>
Some name
some-context-name
</b>
?
</p>
@ -143,11 +145,12 @@ exports[`kube-object-menu given kube object when rerendered with different kube
<div>
<ul
class="Menu MenuActions flex KubeObjectMenu toolbar gaps right bottom"
data-testid="menu-actions-for-kube-object-menu-for-some-other-uid"
id="menu-actions-for-kube-object-menu-for-some-other-uid"
>
<li
class="MenuItem"
data-testid="menu-action-delete"
data-testid="menu-action-delete-for-/some-other-api-version/some-other-kind/some-other-namespace/some-other-name"
tabindex="0"
>
<i
@ -182,11 +185,12 @@ exports[`kube-object-menu given kube object when rerendered with different kube
<div>
<ul
class="Menu MenuActions flex KubeObjectMenu toolbar gaps right bottom"
data-testid="menu-actions-for-kube-object-menu-for-some-other-uid"
id="menu-actions-for-kube-object-menu-for-some-other-uid"
>
<li
class="MenuItem"
data-testid="menu-action-delete"
data-testid="menu-action-delete-for-/some-other-api-version/some-other-kind/some-other-namespace/some-other-name"
tabindex="0"
>
<i
@ -240,7 +244,7 @@ exports[`kube-object-menu given kube object when rerendered with different kube
</b>
from
<b>
Some name
some-context-name
</b>
?
</p>
@ -274,6 +278,7 @@ exports[`kube-object-menu given kube object with namespace when removing kube ob
<div>
<ul
class="Menu MenuActions flex KubeObjectMenu toolbar gaps right bottom"
data-testid="menu-actions-for-kube-object-menu-for-some-uid"
id="menu-actions-for-kube-object-menu-for-some-uid"
>
<li>
@ -281,7 +286,7 @@ exports[`kube-object-menu given kube object with namespace when removing kube ob
</li>
<li
class="MenuItem"
data-testid="menu-action-delete"
data-testid="menu-action-delete-for-/foo"
tabindex="0"
>
<i
@ -335,7 +340,7 @@ exports[`kube-object-menu given kube object with namespace when removing kube ob
</b>
from
<b>
Some name
some-context-name
</b>
?
</p>
@ -369,6 +374,7 @@ exports[`kube-object-menu given kube object without namespace when removing kube
<div>
<ul
class="Menu MenuActions flex KubeObjectMenu toolbar gaps right bottom"
data-testid="menu-actions-for-kube-object-menu-for-some-uid"
id="menu-actions-for-kube-object-menu-for-some-uid"
>
<li>
@ -376,7 +382,7 @@ exports[`kube-object-menu given kube object without namespace when removing kube
</li>
<li
class="MenuItem"
data-testid="menu-action-delete"
data-testid="menu-action-delete-for-/foo"
tabindex="0"
>
<i
@ -430,7 +436,7 @@ exports[`kube-object-menu given kube object without namespace when removing kube
</b>
from
<b>
Some name
some-context-name
</b>
?
</p>
@ -463,6 +469,7 @@ exports[`kube-object-menu given no kube object, renders 1`] = `
<div>
<ul
class="Menu MenuActions flex KubeObjectMenu toolbar gaps right bottom"
data-testid="menu-actions-for-kube-object-menu-for-undefined"
id="menu-actions-for-kube-object-menu-for-undefined"
/>
</div>

View File

@ -17,7 +17,7 @@ import { getDiForUnitTesting } from "../../getDiForUnitTesting";
import { computed, runInAction } from "mobx";
import type { DiRender } from "../test-utils/renderFor";
import { renderFor } from "../test-utils/renderFor";
import type { Cluster } from "../../../common/cluster/cluster";
import { Cluster } from "../../../common/cluster/cluster";
import type { ApiManager } from "../../../common/k8s-api/api-manager";
import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable";
import { KubeObjectMenu } from "./index";
@ -27,6 +27,9 @@ import { kubeObjectMenuItemInjectionToken } from "./kube-object-menu-item-inject
import activeEntityInternalClusterInjectable from "../../api/catalog/entity/get-active-cluster-entity.injectable";
import directoryForTempInjectable from "../../../common/app-paths/directory-for-temp/directory-for-temp.injectable";
import directoryForUserDataInjectable from "../../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable";
import hostedClusterIdInjectable from "../../cluster-frame-context/hosted-cluster-id.injectable";
import clustersStateInjectable from "../../../features/cluster/storage/common/state.injectable";
import activeEntityIdInjectable from "../../api/catalog/entity/active-entity-id.injectable";
// TODO: make `animated={false}` not required to make tests deterministic
describe("kube-object-menu", () => {
@ -36,9 +39,17 @@ describe("kube-object-menu", () => {
beforeEach(() => {
di = getDiForUnitTesting();
di.override(hostedClusterIdInjectable, () => "some-cluster-id");
di.override(directoryForUserDataInjectable, () => "/some-directory-for-user-data");
di.override(directoryForTempInjectable, () => "/some-directory-for-temp");
di.inject(clustersStateInjectable).set("some-cluster-id", new Cluster({
id: "some-cluster-id",
contextName: "some-context-name",
kubeConfigPath: "/some-path-to-a-kubeconfig",
}));
di.override(activeEntityIdInjectable, () => computed(() => "some-cluster-id"));
runInAction(() => {
di.register(
someMenuItemInjectable,
@ -49,13 +60,6 @@ describe("kube-object-menu", () => {
render = renderFor(di);
di.override(
activeEntityInternalClusterInjectable,
() => computed(() => ({
name: computed(() => "Some name"),
} as Cluster)),
);
di.override(
apiManagerInjectable,
() =>
@ -138,7 +142,7 @@ describe("kube-object-menu", () => {
name: "some-other-name",
resourceVersion: "some-other-resource-version",
namespace: "some-other-namespace",
selfLink: "some-other-api-version/some-other-kind/some-other-namespace/some-other-name",
selfLink: "/some-other-api-version/some-other-kind/some-other-namespace/some-other-name",
},
});
@ -161,7 +165,7 @@ describe("kube-object-menu", () => {
describe("when removing new kube object", () => {
beforeEach(async () => {
userEvent.click(await screen.findByTestId("menu-action-delete"));
userEvent.click(await screen.findByTestId("menu-action-delete-for-/some-other-api-version/some-other-kind/some-other-namespace/some-other-name"));
});
it("renders", async () => {
@ -173,7 +177,7 @@ describe("kube-object-menu", () => {
describe("when removing kube object", () => {
beforeEach(async () => {
userEvent.click(await screen.findByTestId("menu-action-delete"));
userEvent.click(await screen.findByTestId("menu-action-delete-for-/foo"));
});
it("renders", async () => {
@ -236,7 +240,7 @@ describe("kube-object-menu", () => {
});
it("when removing kube object, renders confirmation dialog with namespace", async () => {
const menuItem = await screen.findByTestId("menu-action-delete");
const menuItem = await screen.findByTestId("menu-action-delete-for-/foo");
userEvent.click(menuItem);
@ -274,7 +278,7 @@ describe("kube-object-menu", () => {
});
it("when removing kube object, renders confirmation dialog without namespace", async () => {
const menuItem = await screen.findByTestId("menu-action-delete");
const menuItem = await screen.findByTestId("menu-action-delete-for-/foo");
userEvent.click(menuItem);