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:
parent
535bac4df9
commit
6741b94220
@ -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;
|
||||
@ -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);
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user