mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Fix metrics visibility logic (#7465)
Signed-off-by: Juho Heikka <juho.heikka@gmail.com>
This commit is contained in:
1 parent
3b8ef07a9e
commit
a73586d844
5 files changed
+59
-6
No files matched your search
@@ -0,0 +1,52 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
|
||||
import { Cluster } from "../../../../../common/cluster/cluster";
|
||||
import { getDiForUnitTesting } from "../../../../getDiForUnitTesting";
|
||||
import enabledMetricsInjectable from "../metrics-enabled.injectable";
|
||||
import activeEntityInternalClusterInjectable from "../get-active-cluster-entity.injectable";
|
||||
import { observable } from "mobx";
|
||||
import { ClusterMetricsResourceType } from "../../../../../common/cluster-types";
|
||||
import type { DiContainer } from "@ogre-tools/injectable";
|
||||
|
||||
describe("metrics-enabled", () => {
|
||||
let cluster: Cluster;
|
||||
let di: DiContainer;
|
||||
|
||||
beforeEach(() => {
|
||||
di = getDiForUnitTesting();
|
||||
|
||||
cluster = new Cluster({ contextName: "irrelevant", id: "irrelevant", kubeConfigPath: "irrelevant" });
|
||||
const observableCluster = observable.box(cluster);
|
||||
|
||||
di.override(activeEntityInternalClusterInjectable, () => observableCluster);
|
||||
});
|
||||
|
||||
it("given cluster has no hidden metrics preferences, should be true for all resources", () => {
|
||||
const resourceTypes = Object.values(ClusterMetricsResourceType);
|
||||
|
||||
delete cluster.preferences.hiddenMetrics;
|
||||
resourceTypes.forEach((resourceType) => {
|
||||
expect(di.inject(enabledMetricsInjectable, resourceType).get()).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
it("given cluster has metrics preferences, but nothing is hidden, should be true for all resources", () => {
|
||||
const resourceTypes = Object.values(ClusterMetricsResourceType);
|
||||
|
||||
cluster.preferences.hiddenMetrics = [];
|
||||
|
||||
resourceTypes.forEach((resourceType) => {
|
||||
expect(di.inject(enabledMetricsInjectable, resourceType).get()).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
it("given cluster has metrics preferences, and some resource is hidden, should be false", () => {
|
||||
cluster.preferences.hiddenMetrics = [ClusterMetricsResourceType.Pod];
|
||||
|
||||
expect(di.inject(enabledMetricsInjectable, ClusterMetricsResourceType.Pod).get()).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ const metricsDetailsComponentEnabledInjectable = getInjectable({
|
||||
return false;
|
||||
}
|
||||
|
||||
return current.object.kind == kind && metricsEnabled.get();
|
||||
return metricsEnabled.get() && current.object.kind == kind;
|
||||
});
|
||||
},
|
||||
lifecycle: lifecycleEnum.keyedSingleton({
|
||||
|
||||
@@ -16,10 +16,10 @@ const enabledMetricsInjectable = getInjectable({
|
||||
const cluster = activeEntityInternalCluster.get();
|
||||
|
||||
if (!cluster?.preferences.hiddenMetrics) {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
return cluster.preferences.hiddenMetrics.includes(kind);
|
||||
return !cluster.preferences.hiddenMetrics.includes(kind);
|
||||
});
|
||||
},
|
||||
lifecycle: lifecycleEnum.keyedSingleton({
|
||||
|
||||
Reference in new issue
Block a user