mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* Kludge "isEnabledForCluster" work again for cluster pages Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Kludge "isEnabledForCluster" work again for kube object details Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Expose reactive way to hide kube object detail items in Extension API Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Expose reactive way to hide kube object menu items in Extension API Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Expose reactive way to hide kube object status items in Extension API Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Expose reactive way to hide workload overview detail items in Extension API Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Expose reactive way to disable pages in Extension API Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Expose a way to access active cluster from Extension API Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Deprecate "isEnabledForCluster" in favor of individual enabled or visible properties for each registration Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
76 lines
2.4 KiB
TypeScript
76 lines
2.4 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
import type { RenderResult } from "@testing-library/react";
|
|
import type { IObservableValue } from "mobx";
|
|
import { computed, observable, runInAction } from "mobx";
|
|
import React from "react";
|
|
import navigateToWorkloadsOverviewInjectable from "../../../../../common/front-end-routing/routes/cluster/workloads/overview/navigate-to-workloads-overview.injectable";
|
|
import type { ApplicationBuilder } from "../../../../../renderer/components/test-utils/get-application-builder";
|
|
import { getApplicationBuilder } from "../../../../../renderer/components/test-utils/get-application-builder";
|
|
import { getExtensionFakeFor } from "../../../../../renderer/components/test-utils/get-extension-fake";
|
|
|
|
describe("reactively hide workloads overview details item", () => {
|
|
let builder: ApplicationBuilder;
|
|
let rendered: RenderResult;
|
|
let someObservable: IObservableValue<boolean>;
|
|
|
|
beforeEach(async () => {
|
|
builder = getApplicationBuilder();
|
|
|
|
const rendererDi = builder.dis.rendererDi;
|
|
|
|
builder.setEnvironmentToClusterFrame();
|
|
|
|
const getExtensionFake = getExtensionFakeFor(builder);
|
|
|
|
someObservable = observable.box(false);
|
|
|
|
const testExtension = getExtensionFake({
|
|
id: "test-extension-id",
|
|
name: "test-extension",
|
|
|
|
rendererOptions: {
|
|
kubeWorkloadsOverviewItems: [
|
|
{
|
|
components: {
|
|
Details: () => (
|
|
<div data-testid="some-workload-overview-detail-item">Some detail component</div>
|
|
),
|
|
},
|
|
|
|
visible: computed(() => someObservable.get()),
|
|
},
|
|
],
|
|
},
|
|
});
|
|
|
|
rendered = await builder.render();
|
|
|
|
const navigateToWorkloadsOverview = rendererDi.inject(
|
|
navigateToWorkloadsOverviewInjectable,
|
|
);
|
|
|
|
navigateToWorkloadsOverview();
|
|
|
|
builder.extensions.enable(testExtension);
|
|
});
|
|
|
|
it("does not show the workload overview detail item", () => {
|
|
const actual = rendered.queryByTestId("some-workload-overview-detail-item");
|
|
|
|
expect(actual).not.toBeInTheDocument();
|
|
});
|
|
|
|
it("given item should be shown, shows the workload overview detail item", () => {
|
|
runInAction(() => {
|
|
someObservable.set(true);
|
|
});
|
|
|
|
const actual = rendered.queryByTestId("some-workload-overview-detail-item");
|
|
|
|
expect(actual).toBeInTheDocument();
|
|
});
|
|
});
|