From f281df16933b8fd43cf39768ba8d8346b2f8ead6 Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Wed, 20 Jul 2022 08:15:27 +0300 Subject: [PATCH] Fix installation of helm charts (#5841) * Relax validator for installing charts Signed-off-by: Janne Savolainen * Tweak spacing between words in confirmation dialog Signed-off-by: Janne Savolainen * Add mocks for monaco editor and virtualized auto sizer to allow components to be rendered in unit tests Signed-off-by: Janne Savolainen * Improve typing for a function Signed-off-by: Janne Savolainen * Remove usage of shared global state from a component Signed-off-by: Janne Savolainen * Provide a way to unit test usages of storages Signed-off-by: Janne Savolainen * Add way to get current value from select in behavioural unit tests Signed-off-by: Janne Savolainen * Rework installation of helm charts to get rid of the majority of bugs Signed-off-by: Janne Savolainen * Update snapshots Signed-off-by: Janne Savolainen * Remove technical test for being covered in behaviours Signed-off-by: Janne Savolainen * Split behaviour to smaller pieces Signed-off-by: Janne Savolainen * Add tests accidentally removed back Signed-off-by: Janne Savolainen * Mark functions causing side effects Signed-off-by: Janne Savolainen * Remove behaviour covered by other behaviours Signed-off-by: Janne Savolainen * Tweak naming Signed-off-by: Janne Savolainen * Remove unused dependency Signed-off-by: Janne Savolainen --- __mocks__/monaco-editor.ts | 9 + __mocks__/react-virtualized-auto-sizer.tsx | 17 + .../order-of-sidebar-items.test.tsx.snap | 2 + ...-and-tab-navigation-for-core.test.tsx.snap | 7 + ...ab-navigation-for-extensions.test.tsx.snap | 8 + .../visibility-of-sidebar-items.test.tsx.snap | 2 + ...when-cluster-is-not-relevant.test.tsx.snap | 3 + ...when-cluster-is-not-relevant.test.tsx.snap | 3 + ...when-cluster-is-not-relevant.test.tsx.snap | 3 + ...when-cluster-is-not-relevant.test.tsx.snap | 3 + ...when-cluster-is-not-relevant.test.tsx.snap | 3 + ...debar-and-tab-navigation-for-core.test.tsx | 3 + ...and-tab-navigation-for-extensions.test.tsx | 3 + ...when-cluster-is-not-relevant.test.tsx.snap | 3 + .../navigation-to-helm-charts.test.ts.snap | 588 - ...lling-helm-chart-from-new-tab.test.ts.snap | 18718 ++++++++++++++++ ...rt-from-previously-opened-tab.test.ts.snap | 1257 ++ ...tab-for-installing-helm-chart.test.ts.snap | 6352 ++++++ ...installing-helm-chart-from-new-tab.test.ts | 1024 + ...m-chart-from-previously-opened-tab.test.ts | 260 + ...dock-tab-for-installing-helm-chart.test.ts | 361 + .../navigation-to-helm-charts.test.ts | 37 - src/common/utils/get-random-id.injectable.ts | 2 +- src/jest.setup.ts | 8 + .../install-chart-route.injectable.ts | 3 +- .../helm-chart-details.test.tsx.snap | 423 - ...eadme-of-selected-helm-chart.injectable.ts | 38 + .../call-for-helm-chart-readme.injectable.ts | 29 + ...sions-of-selected-helm-chart.injectable.ts | 28 + ...call-for-helm-chart-versions.injectable.ts | 28 + ...rt-details-version-selection.injectable.ts | 59 + .../+helm-charts/helm-chart-details.test.tsx | 92 - .../+helm-charts/helm-chart-details.tsx | 138 +- .../helm-chart-store.injectable.ts | 13 + .../components/+helm-charts/helm-charts.tsx | 36 +- .../call-for-helm-charts.injectable.ts | 17 + .../helm-charts/helm-charts.injectable.ts | 19 + .../selected-helm-chart.injectable.ts | 36 + ...call-for-create-helm-release.injectable.ts | 19 + .../create-release.injectable.ts | 7 +- .../+helm-releases/release-menu.tsx | 1 + .../components/+helm-releases/releases.tsx | 1 + .../components/dialog/logs-dialog.tsx | 4 +- src/renderer/components/dock/dock-tab.tsx | 1 + src/renderer/components/dock/dock-tabs.tsx | 2 +- src/renderer/components/dock/dock.tsx | 5 +- .../components/dock/editor-panel.module.scss | 4 + src/renderer/components/dock/editor-panel.tsx | 4 +- src/renderer/components/dock/info-panel.tsx | 22 +- .../call-for-helm-chart-values.injectable.ts | 20 + .../create-install-chart-tab.injectable.ts | 70 +- ...-random-install-chart-tab-id.injectable.ts | 13 + .../install-chart-model.injectable.tsx | 282 + .../components/dock/install-chart/store.ts | 43 +- .../components/dock/install-chart/view.tsx | 215 +- .../monaco-editor/__mocks__/monaco-editor.tsx | 43 + .../monaco-editor/monaco-editor.tsx | 7 +- src/renderer/components/table/table-row.tsx | 8 +- .../test-utils/get-application-builder.tsx | 53 +- .../__snapshots__/cluster-frame.test.tsx.snap | 3 + src/renderer/getDiForUnitTesting.tsx | 4 + .../create-storage.injectable.ts | 2 + .../utils/create-storage/create-storage.ts | 4 +- .../storage-save-delay.injectable.ts | 12 + .../create-storage/storages-are-ready.ts | 26 + 65 files changed, 28987 insertions(+), 1523 deletions(-) create mode 100644 __mocks__/react-virtualized-auto-sizer.tsx delete mode 100644 src/behaviours/helm-charts/__snapshots__/navigation-to-helm-charts.test.ts.snap create mode 100644 src/behaviours/helm-charts/installing-chart/__snapshots__/installing-helm-chart-from-new-tab.test.ts.snap create mode 100644 src/behaviours/helm-charts/installing-chart/__snapshots__/installing-helm-chart-from-previously-opened-tab.test.ts.snap create mode 100644 src/behaviours/helm-charts/installing-chart/__snapshots__/opening-dock-tab-for-installing-helm-chart.test.ts.snap create mode 100644 src/behaviours/helm-charts/installing-chart/installing-helm-chart-from-new-tab.test.ts create mode 100644 src/behaviours/helm-charts/installing-chart/installing-helm-chart-from-previously-opened-tab.test.ts create mode 100644 src/behaviours/helm-charts/installing-chart/opening-dock-tab-for-installing-helm-chart.test.ts delete mode 100644 src/behaviours/helm-charts/navigation-to-helm-charts.test.ts delete mode 100644 src/renderer/components/+helm-charts/__snapshots__/helm-chart-details.test.tsx.snap create mode 100644 src/renderer/components/+helm-charts/details/readme-of-selected-helm-chart.injectable.ts create mode 100644 src/renderer/components/+helm-charts/details/readme/call-for-helm-chart-readme.injectable.ts create mode 100644 src/renderer/components/+helm-charts/details/versions-of-selected-helm-chart.injectable.ts create mode 100644 src/renderer/components/+helm-charts/details/versions/call-for-helm-chart-versions.injectable.ts create mode 100644 src/renderer/components/+helm-charts/details/versions/helm-chart-details-version-selection.injectable.ts delete mode 100644 src/renderer/components/+helm-charts/helm-chart-details.test.tsx create mode 100644 src/renderer/components/+helm-charts/helm-chart-store.injectable.ts create mode 100644 src/renderer/components/+helm-charts/helm-charts/call-for-helm-charts.injectable.ts create mode 100644 src/renderer/components/+helm-charts/helm-charts/helm-charts.injectable.ts create mode 100644 src/renderer/components/+helm-charts/helm-charts/selected-helm-chart.injectable.ts create mode 100644 src/renderer/components/+helm-releases/create-release/call-for-create-helm-release.injectable.ts create mode 100644 src/renderer/components/dock/install-chart/chart-data/call-for-helm-chart-values.injectable.ts create mode 100644 src/renderer/components/dock/install-chart/get-random-install-chart-tab-id.injectable.ts create mode 100644 src/renderer/components/dock/install-chart/install-chart-model.injectable.tsx create mode 100644 src/renderer/components/monaco-editor/__mocks__/monaco-editor.tsx create mode 100644 src/renderer/utils/create-storage/storage-save-delay.injectable.ts create mode 100644 src/renderer/utils/create-storage/storages-are-ready.ts diff --git a/__mocks__/monaco-editor.ts b/__mocks__/monaco-editor.ts index cbe02cb296..1623a6f00b 100644 --- a/__mocks__/monaco-editor.ts +++ b/__mocks__/monaco-editor.ts @@ -3,3 +3,12 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ export default {}; + +export const Uri = { + file: (path: string) => path, +}; + +export const editor = { + getModel: () => ({}), + create: () => ({}), +}; diff --git a/__mocks__/react-virtualized-auto-sizer.tsx b/__mocks__/react-virtualized-auto-sizer.tsx new file mode 100644 index 0000000000..ede5de41cb --- /dev/null +++ b/__mocks__/react-virtualized-auto-sizer.tsx @@ -0,0 +1,17 @@ +/** + * 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 { Size } from "react-virtualized-auto-sizer"; + +export default ({ children } : { children: (size: Size) => React.ReactNode }) => { + return ( +
+ {children({ + height: 420000, + width: 100, + })} +
+ ); +}; diff --git a/src/behaviours/cluster/__snapshots__/order-of-sidebar-items.test.tsx.snap b/src/behaviours/cluster/__snapshots__/order-of-sidebar-items.test.tsx.snap index a942d936d2..0b424f4ce2 100644 --- a/src/behaviours/cluster/__snapshots__/order-of-sidebar-items.test.tsx.snap +++ b/src/behaviours/cluster/__snapshots__/order-of-sidebar-items.test.tsx.snap @@ -472,6 +472,7 @@ exports[`cluster - order of sidebar items when rendered renders 1`] = ` >