From 14d5a1c3cc0d1b9088e8e8431b85dc7004dad62a Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Mon, 4 Jul 2022 19:38:29 +0300 Subject: [PATCH] Split root and cluster frames in smaller pieces (#5737) * Make root frame child components comply with open closed principle and include it in the behavioural unit tests Signed-off-by: Janne Savolainen * Make cluster frame child components comply with open closed principle and include it in behavioural unit tests Signed-off-by: Janne Savolainen * Remove duplication Signed-off-by: Janne Savolainen * Simplify test Signed-off-by: Janne Savolainen * Make a component more determistic in unit tests Signed-off-by: Janne Savolainen * Mock uninterested, non-deterministic third party library in unit tests Co-authored-by: Mikko Aspiala Signed-off-by: Janne Savolainen * Optimize registration of injectables in unit tests to make tests faster Signed-off-by: Janne Savolainen * Update snapshots Signed-off-by: Janne Savolainen * Remove import time side-effect causing memory leak Signed-off-by: Janne Savolainen --- __mocks__/react-beautiful-dnd.tsx | 15 + package.json | 10 +- ...acters-in-page-registrations.test.tsx.snap | 411 +- .../navigate-to-extension-page.test.tsx.snap | 1005 +- .../navigating-between-routes.test.tsx.snap | 342 +- ...ation-using-application-menu.test.tsx.snap | 543 +- ...navigation-using-application-menu.test.tsx | 4 - ...g-update-using-topbar-button.test.tsx.snap | 243 +- .../installing-update-using-tray.test.ts.snap | 1508 ++- .../installing-update.test.ts.snap | 1508 ++- ...eriodical-checking-of-updates.test.ts.snap | 243 +- ...selection-of-update-stability.test.ts.snap | 243 +- .../order-of-sidebar-items.test.tsx.snap | 1736 ++- ...-and-tab-navigation-for-core.test.tsx.snap | 5108 +++++--- ...ab-navigation-for-extensions.test.tsx.snap | 6151 +++++---- .../visibility-of-sidebar-items.test.tsx.snap | 1472 ++- ...debar-and-tab-navigation-for-core.test.tsx | 13 +- ...and-tab-navigation-for-extensions.test.tsx | 18 +- ...gation-using-application-menu.test.ts.snap | 617 +- ...elm-repository-in-preferences.test.ts.snap | 10422 ++++++++-------- ...tory-from-list-in-preferences.test.ts.snap | 9926 ++++++++------- ...m-repositories-in-preferences.test.ts.snap | 8386 +++++++------ .../navigation-to-helm-charts.test.ts.snap | 929 +- ...ive-repository-in-preferences.test.ts.snap | 3980 +++--- .../closing-preferences.test.tsx.snap | 4360 ++++--- ...on-to-application-preferences.test.ts.snap | 1696 +-- ...igation-to-editor-preferences.test.ts.snap | 1970 +-- ...tension-specific-preferences.test.tsx.snap | 6614 +++++----- ...ion-to-kubernetes-preferences.test.ts.snap | 2002 +-- ...vigation-to-proxy-preferences.test.ts.snap | 1696 +-- ...ion-to-telemetry-preferences.test.tsx.snap | 3744 +++--- ...ation-to-terminal-preferences.test.ts.snap | 2030 +-- ...gation-using-application-menu.test.ts.snap | 1423 ++- .../navigation-using-tray.test.ts.snap | 1423 ++- ...-originating-from-extensions.test.tsx.snap | 291 +- ...gation-using-application-menu.test.ts.snap | 1203 +- .../navigation-using-application-menu.test.ts | 34 +- src/main/getDiForUnitTesting.ts | 25 +- ...luster-frame-child-component.injectable.ts | 24 + ...luster-frame-child-component.injectable.ts | 24 + ...luster-frame-child-component.injectable.ts | 24 + ...luster-frame-child-component.injectable.ts | 24 + ...-root-frame-child-component.injectable.tsx | 30 + ...luster-frame-child-component.injectable.ts | 24 + ...r-root-frame-child-component.injectable.ts | 24 + ...luster-frame-child-component.injectable.ts | 22 + ...g-root-frame-child-component.injectable.ts | 22 + .../__tests__/delete-cluster-dialog.test.tsx | 44 - ...luster-frame-child-component.injectable.ts | 24 + src/renderer/components/dock/dock-tab.tsx | 8 +- .../components/hotbar/hotbar-menu.tsx | 4 +- ...luster-frame-child-component.injectable.ts | 24 + ...luster-frame-child-component.injectable.ts | 24 + ...luster-frame-child-component.injectable.ts | 22 + ...s-root-frame-child-component.injectable.ts | 22 + .../test-utils/get-application-builder.tsx | 62 +- .../__snapshots__/cluster-frame.test.tsx.snap | 18 +- ...r-frame-child-component-injection-token.ts | 17 + ...rame-layout-child-component.injectable.tsx | 61 + .../frames/cluster-frame/cluster-frame.tsx | 77 +- ...t-frame-child-component-injection-token.ts | 17 + src/renderer/frames/root-frame/root-frame.tsx | 28 +- .../root-frame/setup-system-ca.injectable.ts | 23 + src/renderer/getDiForUnitTesting.tsx | 68 +- ...luster-frame-child-component.injectable.ts | 24 + yarn.lock | 54 +- 66 files changed, 48472 insertions(+), 35711 deletions(-) create mode 100644 __mocks__/react-beautiful-dnd.tsx create mode 100644 src/renderer/components/+workloads-cronjobs/cron-job-trigger-dialog-cluster-frame-child-component.injectable.ts create mode 100644 src/renderer/components/+workloads-deployments/scale/deployment-scale-dialog-cluster-frame-child-component.injectable.ts create mode 100644 src/renderer/components/+workloads-replicasets/scale-dialog/replicaset-scale-dialog-cluster-frame-child-component.injectable.ts create mode 100644 src/renderer/components/+workloads-statefulsets/scale/statefulset-scale-dialog-cluster-frame-child-component.injectable.ts create mode 100644 src/renderer/components/cluster-manager/cluster-manager-root-frame-child-component.injectable.tsx create mode 100644 src/renderer/components/command-palette/command-container-cluster-frame-child-component.injectable.ts create mode 100644 src/renderer/components/command-palette/command-container-root-frame-child-component.injectable.ts create mode 100644 src/renderer/components/confirm-dialog/confirm-dialog-cluster-frame-child-component.injectable.ts create mode 100644 src/renderer/components/confirm-dialog/confirm-dialog-root-frame-child-component.injectable.ts create mode 100644 src/renderer/components/delete-cluster-dialog/delete-cluster-dialog-cluster-frame-child-component.injectable.ts create mode 100644 src/renderer/components/kube-object-details/kube-object-details-cluster-frame-child-component.injectable.ts create mode 100644 src/renderer/components/kubeconfig-dialog/kubeconfig-dialog-cluster-frame-child-component.injectable.ts create mode 100644 src/renderer/components/notifications/notifications-cluster-frame-child-component.injectable.ts create mode 100644 src/renderer/components/notifications/notifications-root-frame-child-component.injectable.ts create mode 100644 src/renderer/frames/cluster-frame/cluster-frame-child-component-injection-token.ts create mode 100644 src/renderer/frames/cluster-frame/cluster-frame-layout-child-component.injectable.tsx create mode 100644 src/renderer/frames/root-frame/root-frame-child-component-injection-token.ts create mode 100644 src/renderer/frames/root-frame/setup-system-ca.injectable.ts create mode 100644 src/renderer/port-forward/port-forward-dialog-cluster-frame-child-component.injectable.ts diff --git a/__mocks__/react-beautiful-dnd.tsx b/__mocks__/react-beautiful-dnd.tsx new file mode 100644 index 0000000000..6404bfd450 --- /dev/null +++ b/__mocks__/react-beautiful-dnd.tsx @@ -0,0 +1,15 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import React from "react"; + +import type { + DragDropContextProps, + DraggableProps, + DroppableProps, +} from "react-beautiful-dnd"; + +export const DragDropContext = ({ children }: DragDropContextProps) => <>{ children }; +export const Draggable = ({ children }: DraggableProps) => <>{ children }; +export const Droppable = ({ children }: DroppableProps) => <>{ children }; diff --git a/package.json b/package.json index 85bdc48329..7a9f1264b6 100644 --- a/package.json +++ b/package.json @@ -209,11 +209,11 @@ "@hapi/subtext": "^7.0.4", "@kubernetes/client-node": "^0.16.3", "@material-ui/styles": "^4.11.5", - "@ogre-tools/fp": "9.0.0", - "@ogre-tools/injectable": "9.0.0", - "@ogre-tools/injectable-extension-for-auto-registration": "9.0.0", - "@ogre-tools/injectable-extension-for-mobx": "9.0.0", - "@ogre-tools/injectable-react": "9.0.0", + "@ogre-tools/fp": "9.0.1", + "@ogre-tools/injectable": "9.0.1", + "@ogre-tools/injectable-extension-for-auto-registration": "9.0.1", + "@ogre-tools/injectable-extension-for-mobx": "9.0.1", + "@ogre-tools/injectable-react": "9.0.1", "@sentry/electron": "^3.0.7", "@sentry/integrations": "^6.19.3", "@side/jest-runtime": "^1.0.1", diff --git a/src/behaviours/__snapshots__/extension-special-characters-in-page-registrations.test.tsx.snap b/src/behaviours/__snapshots__/extension-special-characters-in-page-registrations.test.tsx.snap index 91606c6ec9..74307f3b53 100644 --- a/src/behaviours/__snapshots__/extension-special-characters-in-page-registrations.test.tsx.snap +++ b/src/behaviours/__snapshots__/extension-special-characters-in-page-registrations.test.tsx.snap @@ -3,71 +3,206 @@ exports[`extension special characters in page registrations renders 1`] = `
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- No new updates available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
-
- No new updates available + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
+ Some page +
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+ + + arrow_right + +
-
-
- Some page + class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- No new updates available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
-
- No new updates available + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
+ Child page +
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+ + + arrow_right + +
-
-
- Child page + class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
-
- No new updates available + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
+
    +
  • + some-string-value-from-navigate +
  • +
  • + 126 +
  • +
  • + some-array-value-from-navigate +
  • +
+ +
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+ + + arrow_right + +
-
-
-
    -
  • - some-string-value-from-navigate -
  • -
  • - 126 -
  • -
  • - some-array-value-from-navigate -
  • -
- +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
-
- No new updates available + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
+
    +
  • + some-string-value +
  • +
  • + 42 +
  • +
  • + some-array-value,some-other-array-value +
  • +
+ +
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+ + + arrow_right + +
-
-
-
    -
  • - some-string-value -
  • -
  • - 42 -
  • -
  • - some-array-value,some-other-array-value -
  • -
- +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
-
- No new updates available + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
+
    +
  • + some-changed-string-value +
  • +
  • + 84 +
  • +
  • + some-changed-array-value,some-other-changed-array-value +
  • +
+ +
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+ + + arrow_right + +
-
-
-
    -
  • - some-changed-string-value -
  • -
  • - 84 -
  • -
  • - some-changed-array-value,some-other-changed-array-value -
  • -
- +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
-
- No new updates available -
+ + home + + + + + arrow_back + + + + + arrow_forward + +
+
-
-
-
-    {
+    
+
+
+        {
   "someParameter": "some-value",
   "someOtherParameter": "some-other-value"
 }
-  
+
+ +
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+
+
+
+
+
+ No new updates available +
+
+
+
+
+
@@ -84,74 +136,126 @@ exports[`navigating between routes given route with optional path parameters whe exports[`navigating between routes given route without path parameters when navigating to route renders 1`] = `
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
-
- No new updates available + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
+ Some component +
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+ + + arrow_right + +
-
-
- Some component + class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- No new updates available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
-
- No new updates available -
-
-
-
-
-
-
-
-

- Add Clusters from Kubeconfig -

-

- Clusters added here are - - not - - merged into the - - ~/.kube/config - - file. - - Read more about adding clusters. - -

-
-
+ + - -
+ arrow_back + + + + + arrow_forward + +
+
+
+
+
-
-
- +

+ Add Clusters from Kubeconfig +

+

+ Clusters added here are + + not + + merged into the + + ~/.kube/config + + file. + - - close - - -

+ Read more about adding clusters. + +

+
+
+
+
+ + + close + + +
+ +
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+
+
+
+
+
+ No new updates available +
+
+
+
({ - Tooltip: () => null, -})); - jest.mock("../../renderer/components/tooltip/withTooltip", () => ({ withTooltip: (Target: any) => ({ tooltip, tooltipOverrideDisabled, ...props }: any) => , })); diff --git a/src/behaviours/application-update/__snapshots__/installing-update-using-topbar-button.test.tsx.snap b/src/behaviours/application-update/__snapshots__/installing-update-using-topbar-button.test.tsx.snap index 089b031c96..8f3981f48a 100644 --- a/src/behaviours/application-update/__snapshots__/installing-update-using-topbar-button.test.tsx.snap +++ b/src/behaviours/application-update/__snapshots__/installing-update-using-topbar-button.test.tsx.snap @@ -4,71 +4,206 @@ exports[`encourage user to update when sufficient time passed since update was d
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- No new updates available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- No new updates available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
-
- Checking for updates... + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+
+ Checking for updates... +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- Downloading version some-version... + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+
+ + + arrow_left + +
+ class="HotbarIndex" + > +
+ 0 +
+
+ + + arrow_right + +
+ class="StatusBar" + > +
+
+
+ Downloading version some-version... +
+
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - - -
-
-
-
-
+ + + arrow_back + + + + + arrow_forward + + + +
+
+
+
+
- Download of update failed + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ Download of update failed +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - - -
-
-
-
-
+ + + arrow_back + + + + + arrow_forward + + + +
+
+
+
+
- some-version is available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ some-version is available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- No new updates available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- No new updates available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
-
- Checking for updates... + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+
+ Checking for updates... +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- Downloading version some-version... + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+
+ + + arrow_left + +
+ class="HotbarIndex" + > +
+ 0 +
+
+ + + arrow_right + +
+ class="StatusBar" + > +
+
+
+ Downloading version some-version... +
+
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - - -
-
-
-
-
+ + + arrow_back + + + + + arrow_forward + + + +
+
+
+
+
- Download of update failed + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ Download of update failed +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - - -
-
-
-
-
+ + + arrow_back + + + + + arrow_forward + + + +
+
+
+
+
- some-version is available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ some-version is available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- No new updates available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- No new updates available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
- - - home - - - - - arrow_back - - - - - arrow_forward - - -
-
-
-
-
+ + + home + + + + + arrow_back + + + + + arrow_forward + + +
+
+
+
+
+
- No new updates available + +
+
+

+ Welcome to OpenLens 5! +

+

+ To get you started we have auto-detected your clusters in your + + kubeconfig file and added them to the catalog, your centralized + + view for managing all your cloud-native resources. +
+
+ If you have any questions or feedback, please join our + + Lens Community slack channel + + . +

+ +
+
+
+
+
+
+ + + arrow_left + + +
+
+ 0 +
+
+ + + arrow_right + + +
+ class="StatusBar" + > +
+
+
+ No new updates available +
+
+
+
+
-
`; exports[`cluster - order of sidebar items when rendered when parent is expanded renders 1`] = `
+
+