mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
fix tests
Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
e8ea98704a
commit
1563f035e0
@ -1251,8 +1251,26 @@ exports[`disable kube object detail items when cluster is not relevant given not
|
|||||||
<div
|
<div
|
||||||
class="drawer-title-text flex gaps align-center"
|
class="drawer-title-text flex gaps align-center"
|
||||||
>
|
>
|
||||||
|
some-kind: some-name
|
||||||
|
<i
|
||||||
|
class="Icon material interactive focusable"
|
||||||
|
tabindex="0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="icon"
|
||||||
|
data-icon-name="content_copy"
|
||||||
|
>
|
||||||
|
content_copy
|
||||||
|
</span>
|
||||||
|
</i>
|
||||||
|
<div>
|
||||||
|
Copy
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<ul
|
||||||
|
class="Menu MenuActions flex KubeObjectMenu toolbar gaps right bottom"
|
||||||
|
id="menu-actions-for-kube-object-menu-for-some-uid"
|
||||||
|
/>
|
||||||
<i
|
<i
|
||||||
class="Icon material interactive focusable"
|
class="Icon material interactive focusable"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
@ -1272,12 +1290,50 @@ exports[`disable kube object detail items when cluster is not relevant given not
|
|||||||
class="drawer-content flex column box grow"
|
class="drawer-content flex column box grow"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="box center"
|
class="DrawerItem"
|
||||||
>
|
>
|
||||||
Resource loading has failed:
|
<span
|
||||||
<b>
|
class="name"
|
||||||
TypeError: store.getByPath is not a function
|
>
|
||||||
</b>
|
Name
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="value"
|
||||||
|
>
|
||||||
|
some-name
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="DrawerItem"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="name"
|
||||||
|
>
|
||||||
|
Namespace
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="value"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="/workloads?kube-details=%2Fapi%2Fv1%2Fnamespaces%2Fsome-namespace&kube-selected=%2Fapis%2Fsome-api-version%2Fnamespaces%2Fsome-namespace%2Fsome-kind%2Fsome-name"
|
||||||
|
>
|
||||||
|
some-namespace
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="DrawerTitle title"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Events
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="empty"
|
||||||
|
>
|
||||||
|
No events found
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -16,8 +16,26 @@ exports[`reactively hide kube object detail item renders 1`] = `
|
|||||||
<div
|
<div
|
||||||
class="drawer-title-text flex gaps align-center"
|
class="drawer-title-text flex gaps align-center"
|
||||||
>
|
>
|
||||||
|
some-kind: some-name
|
||||||
|
<i
|
||||||
|
class="Icon material interactive focusable"
|
||||||
|
tabindex="0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="icon"
|
||||||
|
data-icon-name="content_copy"
|
||||||
|
>
|
||||||
|
content_copy
|
||||||
|
</span>
|
||||||
|
</i>
|
||||||
|
<div>
|
||||||
|
Copy
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<ul
|
||||||
|
class="Menu MenuActions flex KubeObjectMenu toolbar gaps right bottom"
|
||||||
|
id="menu-actions-for-kube-object-menu-for-some-uid"
|
||||||
|
/>
|
||||||
<i
|
<i
|
||||||
class="Icon material interactive focusable"
|
class="Icon material interactive focusable"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
@ -37,12 +55,50 @@ exports[`reactively hide kube object detail item renders 1`] = `
|
|||||||
class="drawer-content flex column box grow"
|
class="drawer-content flex column box grow"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="box center"
|
class="DrawerItem"
|
||||||
>
|
>
|
||||||
Resource loading has failed:
|
<span
|
||||||
<b>
|
class="name"
|
||||||
TypeError: store.getByPath is not a function
|
>
|
||||||
</b>
|
Name
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="value"
|
||||||
|
>
|
||||||
|
some-name
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="DrawerItem"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="name"
|
||||||
|
>
|
||||||
|
Namespace
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="value"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="/workloads?kube-details=%2Fapi%2Fv1%2Fnamespaces%2Fsome-namespace&kube-selected=%2Fapis%2Fsome-api-version%2Fnamespaces%2Fsome-namespace%2Fsome-kind%2Fsome-name"
|
||||||
|
>
|
||||||
|
some-namespace
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="DrawerTitle title"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Events
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="empty"
|
||||||
|
>
|
||||||
|
No events found
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -575,8 +631,26 @@ exports[`reactively hide kube object detail item when the item is shown renders
|
|||||||
<div
|
<div
|
||||||
class="drawer-title-text flex gaps align-center"
|
class="drawer-title-text flex gaps align-center"
|
||||||
>
|
>
|
||||||
|
some-kind: some-name
|
||||||
|
<i
|
||||||
|
class="Icon material interactive focusable"
|
||||||
|
tabindex="0"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="icon"
|
||||||
|
data-icon-name="content_copy"
|
||||||
|
>
|
||||||
|
content_copy
|
||||||
|
</span>
|
||||||
|
</i>
|
||||||
|
<div>
|
||||||
|
Copy
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<ul
|
||||||
|
class="Menu MenuActions flex KubeObjectMenu toolbar gaps right bottom"
|
||||||
|
id="menu-actions-for-kube-object-menu-for-some-uid"
|
||||||
|
/>
|
||||||
<i
|
<i
|
||||||
class="Icon material interactive focusable"
|
class="Icon material interactive focusable"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
@ -596,12 +670,55 @@ exports[`reactively hide kube object detail item when the item is shown renders
|
|||||||
class="drawer-content flex column box grow"
|
class="drawer-content flex column box grow"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="box center"
|
class="DrawerItem"
|
||||||
>
|
>
|
||||||
Resource loading has failed:
|
<span
|
||||||
<b>
|
class="name"
|
||||||
TypeError: store.getByPath is not a function
|
>
|
||||||
</b>
|
Name
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="value"
|
||||||
|
>
|
||||||
|
some-name
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="DrawerItem"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="name"
|
||||||
|
>
|
||||||
|
Namespace
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="value"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="/workloads?kube-details=%2Fapi%2Fv1%2Fnamespaces%2Fsome-namespace&kube-selected=%2Fapis%2Fsome-api-version%2Fnamespaces%2Fsome-namespace%2Fsome-kind%2Fsome-name"
|
||||||
|
>
|
||||||
|
some-namespace
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
data-testid="some-kube-object-detail-item"
|
||||||
|
>
|
||||||
|
Some detail
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="DrawerTitle title"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Events
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="empty"
|
||||||
|
>
|
||||||
|
No events found
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -2,28 +2,29 @@
|
|||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* 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 type { AsyncFnMock } from "@async-fn/jest";
|
|
||||||
import asyncFn from "@async-fn/jest";
|
|
||||||
import type { RenderResult } from "@testing-library/react";
|
import type { RenderResult } from "@testing-library/react";
|
||||||
import type { ApplicationBuilder } from "../../../../renderer/components/test-utils/get-application-builder";
|
import type {
|
||||||
import type { KubernetesCluster } from "../../../../common/catalog-entities";
|
ApplicationBuilder,
|
||||||
import { getApplicationBuilder } from "../../../../renderer/components/test-utils/get-application-builder";
|
} from "../../../../renderer/components/test-utils/get-application-builder";
|
||||||
|
import {
|
||||||
|
getApplicationBuilder,
|
||||||
|
} from "../../../../renderer/components/test-utils/get-application-builder";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { KubeObject } from "../../../../common/k8s-api/kube-object";
|
import { KubeObject } from "../../../../common/k8s-api/kube-object";
|
||||||
import apiManagerInjectable from "../../../../common/k8s-api/api-manager/manager.injectable";
|
import apiManagerInjectable from "../../../../common/k8s-api/api-manager/manager.injectable";
|
||||||
import type { KubeObjectStore } from "../../../../common/k8s-api/kube-object.store";
|
import type { KubeObjectStore } from "../../../../common/k8s-api/kube-object.store";
|
||||||
import type { KubeApi } from "../../../../common/k8s-api/kube-api";
|
import type { KubeApi } from "../../../../common/k8s-api/kube-api";
|
||||||
import showDetailsInjectable from "../../../../renderer/components/kube-detail-params/show-details.injectable";
|
import showDetailsInjectable
|
||||||
|
from "../../../../renderer/components/kube-detail-params/show-details.injectable";
|
||||||
import type {
|
import type {
|
||||||
FakeExtensionOptions,
|
FakeExtensionOptions,
|
||||||
} from "../../../../renderer/components/test-utils/get-extension-fake";
|
} from "../../../../renderer/components/test-utils/get-extension-fake";
|
||||||
|
import { observable } from "mobx";
|
||||||
|
|
||||||
describe("disable kube object detail items when cluster is not relevant", () => {
|
describe("disable kube object detail items when cluster is not relevant", () => {
|
||||||
let builder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let rendered: RenderResult;
|
let rendered: RenderResult;
|
||||||
let isEnabledForClusterMock: AsyncFnMock<
|
const isVisible = observable.box(false);
|
||||||
(cluster: KubernetesCluster) => Promise<boolean>
|
|
||||||
>;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
builder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
@ -37,23 +38,22 @@ describe("disable kube object detail items when cluster is not relevant", () =>
|
|||||||
const store = {
|
const store = {
|
||||||
api,
|
api,
|
||||||
loadFromPath: async () => getKubeObjectStub("some-kind", "some-api-version"),
|
loadFromPath: async () => getKubeObjectStub("some-kind", "some-api-version"),
|
||||||
|
getByPath() {
|
||||||
|
},
|
||||||
} as Partial<KubeObjectStore<KubeObject>> as KubeObjectStore<KubeObject>;
|
} as Partial<KubeObjectStore<KubeObject>> as KubeObjectStore<KubeObject>;
|
||||||
|
|
||||||
apiManager.registerApi(api);
|
apiManager.registerApi(api);
|
||||||
apiManager.registerStore(store);
|
apiManager.registerStore(store);
|
||||||
});
|
});
|
||||||
|
|
||||||
isEnabledForClusterMock = asyncFn();
|
|
||||||
|
|
||||||
const testExtension: FakeExtensionOptions = {
|
const testExtension: FakeExtensionOptions = {
|
||||||
id: "test-extension-id",
|
id: "test-extension-id",
|
||||||
name: "test-extension",
|
name: "test-extension",
|
||||||
|
|
||||||
rendererOptions: {
|
rendererOptions: {
|
||||||
isEnabledForCluster: isEnabledForClusterMock,
|
|
||||||
|
|
||||||
kubeObjectDetailItems: [
|
kubeObjectDetailItems: [
|
||||||
{
|
{
|
||||||
|
visible: isVisible,
|
||||||
kind: "some-kind",
|
kind: "some-kind",
|
||||||
apiVersions: ["some-api-version"],
|
apiVersions: ["some-api-version"],
|
||||||
components: {
|
components: {
|
||||||
@ -90,10 +90,9 @@ describe("disable kube object detail items when cluster is not relevant", () =>
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe.skip("given extension shouldn't be enabled for the cluster", () => {
|
describe("given extension shouldn't be enabled for the cluster", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(() => {
|
||||||
// FIXME: Error: Tried to resolve an asyncFn call that has not been made yet.
|
isVisible.set(false);
|
||||||
await isEnabledForClusterMock.resolve(false);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
@ -107,10 +106,9 @@ describe("disable kube object detail items when cluster is not relevant", () =>
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe.skip("given extension should be enabled for the cluster", () => {
|
describe("given extension should be enabled for the cluster", () => {
|
||||||
beforeEach(async () => {
|
beforeEach(() => {
|
||||||
// FIXME: Error: Tried to resolve an asyncFn call that has not been made yet.
|
isVisible.set(true);
|
||||||
await isEnabledForClusterMock.resolve(true);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("renders", () => {
|
it("renders", () => {
|
||||||
|
|||||||
@ -3,8 +3,12 @@
|
|||||||
* 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 type { RenderResult } from "@testing-library/react";
|
import type { RenderResult } from "@testing-library/react";
|
||||||
import type { ApplicationBuilder } from "../../../../renderer/components/test-utils/get-application-builder";
|
import type {
|
||||||
import { getApplicationBuilder } from "../../../../renderer/components/test-utils/get-application-builder";
|
ApplicationBuilder,
|
||||||
|
} from "../../../../renderer/components/test-utils/get-application-builder";
|
||||||
|
import {
|
||||||
|
getApplicationBuilder,
|
||||||
|
} from "../../../../renderer/components/test-utils/get-application-builder";
|
||||||
import type { IObservableValue } from "mobx";
|
import type { IObservableValue } from "mobx";
|
||||||
import { runInAction, computed, observable } from "mobx";
|
import { runInAction, computed, observable } from "mobx";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
@ -12,7 +16,8 @@ import { KubeObject } from "../../../../common/k8s-api/kube-object";
|
|||||||
import apiManagerInjectable from "../../../../common/k8s-api/api-manager/manager.injectable";
|
import apiManagerInjectable from "../../../../common/k8s-api/api-manager/manager.injectable";
|
||||||
import type { KubeObjectStore } from "../../../../common/k8s-api/kube-object.store";
|
import type { KubeObjectStore } from "../../../../common/k8s-api/kube-object.store";
|
||||||
import type { KubeApi } from "../../../../common/k8s-api/kube-api";
|
import type { KubeApi } from "../../../../common/k8s-api/kube-api";
|
||||||
import showDetailsInjectable from "../../../../renderer/components/kube-detail-params/show-details.injectable";
|
import showDetailsInjectable
|
||||||
|
from "../../../../renderer/components/kube-detail-params/show-details.injectable";
|
||||||
import assert from "assert";
|
import assert from "assert";
|
||||||
import type {
|
import type {
|
||||||
FakeExtensionOptions,
|
FakeExtensionOptions,
|
||||||
@ -36,6 +41,8 @@ describe("reactively hide kube object detail item", () => {
|
|||||||
const store = {
|
const store = {
|
||||||
api,
|
api,
|
||||||
loadFromPath: async () => getKubeObjectStub("some-kind", "some-api-version"),
|
loadFromPath: async () => getKubeObjectStub("some-kind", "some-api-version"),
|
||||||
|
getByPath() {
|
||||||
|
},
|
||||||
} as Partial<KubeObjectStore<KubeObject>> as KubeObjectStore<KubeObject>;
|
} as Partial<KubeObjectStore<KubeObject>> as KubeObjectStore<KubeObject>;
|
||||||
|
|
||||||
apiManager.registerApi(api);
|
apiManager.registerApi(api);
|
||||||
@ -103,8 +110,7 @@ describe("reactively hide kube object detail item", () => {
|
|||||||
expect(rendered.baseElement).toMatchSnapshot();
|
expect(rendered.baseElement).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
|
||||||
// FIXME: details not rendered in the Drawer (in snapshot?)
|
it("shows the kube object detail item", () => {
|
||||||
it.skip("shows the kube object detail item", () => {
|
|
||||||
const actual = rendered.queryByTestId("some-kube-object-detail-item");
|
const actual = rendered.queryByTestId("some-kube-object-detail-item");
|
||||||
|
|
||||||
expect(actual).toBeInTheDocument();
|
expect(actual).toBeInTheDocument();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user