1
0
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:
Roman 2023-03-13 15:18:13 +02:00
parent e8ea98704a
commit 1563f035e0
4 changed files with 221 additions and 44 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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", () => {

View File

@ -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();