From ca40c5111769f8a8afdefd33077ac79e1f95595b Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Wed, 13 Jul 2022 08:36:51 +0300 Subject: [PATCH] Introduce kludge to make "isEnabledForCluster" work again for cluster pages PART 1 (#5800) * Kludge "isEnabledForCluster" work again for cluster pages Signed-off-by: Janne Savolainen * Introduce kludge to make "isEnabledForCluster" work again for cluster page menus PART 2 (#5801) * Kludge "isEnabledForCluster" work again for cluster page menus (sidebar items) Signed-off-by: Janne Savolainen * Introduce kludge to make "isEnabledForCluster" work again for kube object status texts PART 3 (#5802) * Kludge "isEnabledForCluster" work again for kube object status texts Signed-off-by: Janne Savolainen * Kludge "isEnabledForCluster" work again for kube object menu items (#5803) Signed-off-by: Janne Savolainen * Introduce kludge to make "isEnabledForCluster" work again for workload overview details PART 5 (#5804) * Kludge "isEnabledForCluster" work again for cluster page menus (sidebar items) Signed-off-by: Janne Savolainen * Kludge "isEnabledForCluster" work again for kube object status texts Signed-off-by: Janne Savolainen * Kludge "isEnabledForCluster" work again for kube object menu items Signed-off-by: Janne Savolainen * Kludge "isEnabledForCluster" work again for workload overview details Signed-off-by: Janne Savolainen * Kludge "isEnabledForCluster" work again for kube object details (#5805) Signed-off-by: Janne Savolainen --- ...when-cluster-is-not-relevant.test.tsx.snap | 1424 +++++++++++++++ ...when-cluster-is-not-relevant.test.tsx.snap | 1563 +++++++++++++++++ ...ages-when-cluster-is-not-relevant.test.tsx | 106 ++ ...tems-when-cluster-is-not-relevant.test.tsx | 111 ++ ...when-cluster-is-not-relevant.test.tsx.snap | 1427 +++++++++++++++ ...tems-when-cluster-is-not-relevant.test.tsx | 172 ++ ...when-cluster-is-not-relevant.test.tsx.snap | 1189 +++++++++++++ ...tems-when-cluster-is-not-relevant.test.tsx | 165 ++ ...when-cluster-is-not-relevant.test.tsx.snap | 1181 +++++++++++++ ...uses-when-cluster-is-not-relevant.test.tsx | 160 ++ ...when-cluster-is-not-relevant.test.tsx.snap | 1548 ++++++++++++++++ ...ails-when-cluster-is-not-relevant.test.tsx | 114 ++ ...rder-of-workload-overview-details.test.tsx | 147 ++ src/extensions/common-api/registrations.ts | 2 +- ...nsion-is-enabled-for-cluster.injectable.ts | 30 + .../extension-loader/extension-loader.ts | 27 +- src/extensions/lens-renderer-extension.ts | 3 +- src/extensions/registries/index.ts | 1 - .../registries/kube-object-detail-registry.ts | 37 - .../api/kube-object-detail-registry.ts | 6 - src/renderer/bootstrap.tsx | 3 - .../active-kubernetes-cluster.injectable.ts | 28 + .../detail-components.injectable.ts | 68 - .../+workloads-overview/overview.tsx | 6 +- .../overview-statuses.injectable.ts | 22 + .../workload-events.injectable.ts | 22 + ...orkload-overview-detail-injection-token.ts | 18 + ...-overview-detail-registrator.injectable.ts | 58 + .../workload-overview-details.injectable.ts | 30 + .../details/volumes/variants/flex-volume.tsx | 2 +- ...rrent-kube-object-in-details.injectable.ts | 35 + ...ter-role-binding-detail-item.injectable.ts | 33 + .../cluster-role-detail-item.injectable.ts | 33 + .../config-map-detail-item.injectable.ts | 30 + .../cron-job-detail-item.injectable.ts | 32 + ...urce-definitions-detail-item.injectable.ts | 33 + .../daemon-set-detail-item.injectable.ts | 32 + .../deployment-detail-item.injectable.ts | 32 + .../endpoints-detail-item.injectable.ts | 32 + .../events-detail-item.injectable.ts | 30 + ...l-pod-autoscaler-detail-item.injectable.ts | 33 + .../ingress-detail-item.injectable.ts | 33 + .../job-detail-item.injectable.ts | 30 + .../kube-event-detail-item.injectable.ts | 84 + .../limit-range-detail-item.injectable.ts | 30 + .../namespaces-detail-item.injectable.ts | 30 + .../network-policy-detail-item.injectable.ts | 33 + .../node-detail-item.injectable.ts | 30 + ...ent-volume-claim-detail-item.injectable.ts | 33 + ...ersistent-volume-detail-item.injectable.ts | 33 + .../pod-detail-item.injectable.ts | 30 + ...isruption-budget-detail-item.injectable.ts | 33 + ...-security-policy-detail-item.injectable.ts | 33 + .../replica-set-detail-item.injectable.ts | 32 + .../resource-quota-detail-item.injectable.ts | 32 + .../role-binding-detail-item.injectable.ts | 33 + .../role-detail-item.injectable.ts | 32 + .../secrets-detail-item.injectable.ts | 30 + .../service-account-detail-item.injectable.ts | 33 + .../service-detail-item.injectable.ts | 32 + .../stateful-set-detail-item.injectable.ts | 33 + .../storage-class-detail-item.injectable.ts | 33 + ...kube-object-detail-item-injection-token.ts | 18 + ...ject-detail-item-registrator.injectable.ts | 76 + .../kube-object-detail-items.injectable.ts | 31 + ...-object-matches-to-kind-and-api-version.ts | 10 + .../kube-object-detail-registration.ts | 18 + .../kube-object-details.tsx | 62 +- .../get-kube-object-menu-items.ts | 31 - .../kube-object-menu-items.injectable.ts | 22 - .../static-kube-object-menu-items.ts | 39 - .../kube-object-menu-item-injection-token.ts | 25 + ...object-menu-item-registrator.injectable.ts | 59 + .../kube-object-menu-items.injectable.ts | 43 + .../cron-job-menu.injectable.ts | 25 + .../deployment-menu.injectable.ts | 25 + .../replica-set-menu.injectable.ts | 25 + .../service-account-menu.injectable.ts | 25 + .../kube-object-menu.test.tsx | 102 +- .../kube-object-menu/kube-object-menu.tsx | 11 +- .../kube-object-status-icon.test.tsx | 126 +- .../kube-object-status-icon.tsx | 11 +- ...kube-object-status-text-injection-token.ts | 20 + ...ject-status-text-registrator.injectable.ts | 55 + ...ject-status-texts-for-object.injectable.ts | 42 + .../kube-object-status-texts.injectable.ts | 23 + .../status-registrations.injectable.ts | 21 - .../statuses-for-kube-object.injectable.ts | 35 - ...on-sidebar-item-registrator.injectable.tsx | 16 +- .../test-utils/get-application-builder.tsx | 6 + ...be-enabled-for-cluster-frame.injectable.ts | 49 + src/renderer/getDiForUnitTesting.tsx | 7 + src/renderer/initializers/index.ts | 1 - .../kube-object-detail-registry.tsx | 441 ----- src/renderer/initializers/registries.ts | 1 - ...extension-route-registrator.injectable.tsx | 27 +- 96 files changed, 11371 insertions(+), 904 deletions(-) create mode 100644 src/behaviours/cluster/extension-api/__snapshots__/disable-cluster-pages-when-cluster-is-not-relevant.test.tsx.snap create mode 100644 src/behaviours/cluster/extension-api/__snapshots__/disable-sidebar-items-when-cluster-is-not-relevant.test.tsx.snap create mode 100644 src/behaviours/cluster/extension-api/disable-cluster-pages-when-cluster-is-not-relevant.test.tsx create mode 100644 src/behaviours/cluster/extension-api/disable-sidebar-items-when-cluster-is-not-relevant.test.tsx create mode 100644 src/behaviours/cluster/kube-object-details/extension-api/__snapshots__/disable-kube-object-detail-items-when-cluster-is-not-relevant.test.tsx.snap create mode 100644 src/behaviours/cluster/kube-object-details/extension-api/disable-kube-object-detail-items-when-cluster-is-not-relevant.test.tsx create mode 100644 src/behaviours/cluster/kube-object-menu/extension-api/__snapshots__/disable-kube-object-menu-items-when-cluster-is-not-relevant.test.tsx.snap create mode 100644 src/behaviours/cluster/kube-object-menu/extension-api/disable-kube-object-menu-items-when-cluster-is-not-relevant.test.tsx create mode 100644 src/behaviours/cluster/kube-object-status-icon/extension-api/__snapshots__/disable-kube-object-statuses-when-cluster-is-not-relevant.test.tsx.snap create mode 100644 src/behaviours/cluster/kube-object-status-icon/extension-api/disable-kube-object-statuses-when-cluster-is-not-relevant.test.tsx create mode 100644 src/behaviours/cluster/workloads/overview/extension-api/__snapshots__/disable-workloads-overview-details-when-cluster-is-not-relevant.test.tsx.snap create mode 100644 src/behaviours/cluster/workloads/overview/extension-api/disable-workloads-overview-details-when-cluster-is-not-relevant.test.tsx create mode 100644 src/behaviours/cluster/workloads/overview/extension-api/order-of-workload-overview-details.test.tsx create mode 100644 src/extensions/extension-loader/extension-is-enabled-for-cluster.injectable.ts delete mode 100644 src/extensions/registries/kube-object-detail-registry.ts delete mode 100644 src/renderer/api/kube-object-detail-registry.ts create mode 100644 src/renderer/cluster-frame-context/active-kubernetes-cluster.injectable.ts delete mode 100644 src/renderer/components/+workloads-overview/detail-components.injectable.ts create mode 100644 src/renderer/components/+workloads-overview/workload-overview-details/implementations/overview-statuses.injectable.ts create mode 100644 src/renderer/components/+workloads-overview/workload-overview-details/implementations/workload-events.injectable.ts create mode 100644 src/renderer/components/+workloads-overview/workload-overview-details/workload-overview-detail-injection-token.ts create mode 100644 src/renderer/components/+workloads-overview/workload-overview-details/workload-overview-detail-registrator.injectable.ts create mode 100644 src/renderer/components/+workloads-overview/workload-overview-details/workload-overview-details.injectable.ts create mode 100644 src/renderer/components/kube-object-details/current-kube-object-in-details.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cluster-role-binding-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cluster-role-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/config-map-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/cron-job-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/custom-resource-definitions-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/daemon-set-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/deployment-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/endpoints-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/events-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/horizontal-pod-autoscaler-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/ingress-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/job-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/kube-event-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/limit-range-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/namespaces-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/network-policy-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/node-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/persistent-volume-claim-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/persistent-volume-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-disruption-budget-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-security-policy-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/replica-set-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/resource-quota-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/role-binding-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/role-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/secrets-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/service-account-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/service-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/stateful-set-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/implementations/storage-class-detail-item.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-item-injection-token.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-item-registrator.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-detail-items.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-items/kube-object-matches-to-kind-and-api-version.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-detail-registration.ts delete mode 100644 src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/get-kube-object-menu-items.ts delete mode 100644 src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-items.injectable.ts delete mode 100644 src/renderer/components/kube-object-menu/dependencies/static-kube-object-menu-items.ts create mode 100644 src/renderer/components/kube-object-menu/kube-object-menu-item-injection-token.ts create mode 100644 src/renderer/components/kube-object-menu/kube-object-menu-item-registrator.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/kube-object-menu-items.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/kube-object-menu-items/cron-job-menu.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/kube-object-menu-items/deployment-menu.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/kube-object-menu-items/replica-set-menu.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/kube-object-menu-items/service-account-menu.injectable.ts create mode 100644 src/renderer/components/kube-object-status-icon/kube-object-status-text-injection-token.ts create mode 100644 src/renderer/components/kube-object-status-icon/kube-object-status-text-registrator.injectable.ts create mode 100644 src/renderer/components/kube-object-status-icon/kube-object-status-texts-for-object.injectable.ts create mode 100644 src/renderer/components/kube-object-status-icon/kube-object-status-texts.injectable.ts delete mode 100644 src/renderer/components/kube-object-status-icon/status-registrations.injectable.ts delete mode 100644 src/renderer/components/kube-object-status-icon/statuses-for-kube-object.injectable.ts create mode 100644 src/renderer/extension-loader/extension-should-be-enabled-for-cluster-frame.injectable.ts delete mode 100644 src/renderer/initializers/kube-object-detail-registry.tsx diff --git a/src/behaviours/cluster/extension-api/__snapshots__/disable-cluster-pages-when-cluster-is-not-relevant.test.tsx.snap b/src/behaviours/cluster/extension-api/__snapshots__/disable-cluster-pages-when-cluster-is-not-relevant.test.tsx.snap new file mode 100644 index 0000000000..186f7a42e7 --- /dev/null +++ b/src/behaviours/cluster/extension-api/__snapshots__/disable-cluster-pages-when-cluster-is-not-relevant.test.tsx.snap @@ -0,0 +1,1424 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`disable-cluster-pages-when-cluster-is-not-relevant given extension should be enabled for the cluster, when navigating renders 1`] = ` + +
+
+
+