From 7ed50f83fc547c8a0f421a3db7ba1d5616e0981a Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Mon, 6 Dec 2021 20:05:05 +0200 Subject: [PATCH] Add breadcrumbs to removal of kube objects, but also discuss about general improvements (#4282) Co-authored-by: Mikko Aspiala Co-authored-by: Janne Savolainen Co-authored-by: Janne Savolainen Co-authored-by: Mikko Aspiala --- .idea/jsLibraryMappings.xml | 6 + .idea/lens.iml | 1 + .idea/libraries/ogre_tools.xml | 16 + package.json | 12 +- .../confirm-dialog/confirm-dialog.tsx | 2 + src/renderer/components/dialog/dialog.tsx | 4 +- .../kube-object-menu.test.tsx.snap | 371 ++++++++++++++++++ .../dependencies/api-manager.injectable.ts | 32 ++ .../dependencies/cluster-name.injectable.ts | 41 ++ .../dependencies/cluster.injectable.ts | 33 ++ .../edit-resource-tab.injectable.ts | 31 ++ .../dependencies/hide-details.injectable.ts | 31 ++ .../get-kube-object-menu-items.ts | 43 ++ .../kube-object-menu-items.injectable.ts | 44 +++ .../kube-object-menu-registry.injectable.ts | 31 ++ .../components/kube-object-menu/index.ts | 3 +- .../kube-object-menu-container.tsx | 24 ++ .../kube-object-menu.injectable.tsx | 60 +++ .../kube-object-menu.test.tsx | 284 ++++++++++++++ .../kube-object-menu/kube-object-menu.tsx | 65 +-- src/renderer/components/menu/menu-actions.tsx | 52 ++- .../components/test-utils/renderFor.tsx | 42 ++ yarn.lock | 59 ++- 23 files changed, 1214 insertions(+), 73 deletions(-) create mode 100644 .idea/jsLibraryMappings.xml create mode 100644 .idea/libraries/ogre_tools.xml create mode 100644 src/renderer/components/kube-object-menu/__snapshots__/kube-object-menu.test.tsx.snap create mode 100644 src/renderer/components/kube-object-menu/dependencies/api-manager.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/dependencies/cluster-name.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/dependencies/cluster.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/dependencies/edit-resource-tab.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/dependencies/hide-details.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/get-kube-object-menu-items.ts create mode 100644 src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-items.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/dependencies/kube-object-menu-items/kube-object-menu-registry.injectable.ts create mode 100644 src/renderer/components/kube-object-menu/kube-object-menu-container.tsx create mode 100644 src/renderer/components/kube-object-menu/kube-object-menu.injectable.tsx create mode 100644 src/renderer/components/kube-object-menu/kube-object-menu.test.tsx create mode 100644 src/renderer/components/test-utils/renderFor.tsx diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 0000000000..0034429ff9 --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/lens.iml b/.idea/lens.iml index 079203f10b..fe491887dd 100644 --- a/.idea/lens.iml +++ b/.idea/lens.iml @@ -15,5 +15,6 @@ + \ No newline at end of file diff --git a/.idea/libraries/ogre_tools.xml b/.idea/libraries/ogre_tools.xml new file mode 100644 index 0000000000..6deeb167ce --- /dev/null +++ b/.idea/libraries/ogre_tools.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/package.json b/package.json index 96d99fa47c..5653d9c5b8 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,12 @@ "setupFiles": [ "/src/jest.setup.ts", "jest-canvas-mock" - ] + ], + "globals": { + "ts-jest": { + "isolatedModules": true + } + } }, "build": { "generateUpdatesFilesForAllChannels": true, @@ -193,8 +198,8 @@ "@kubernetes/client-node": "^0.16.1", "@sentry/electron": "^2.5.4", "@sentry/integrations": "^6.15.0", - "@ogre-tools/injectable": "^1.2.1", - "@ogre-tools/injectable-react": "^1.2.1", + "@ogre-tools/injectable": "^1.3.0", + "@ogre-tools/injectable-react": "^1.3.1", "abort-controller": "^3.0.0", "auto-bind": "^4.0.0", "autobind-decorator": "^2.4.0", @@ -260,6 +265,7 @@ "ws": "^7.5.5" }, "devDependencies": { + "@async-fn/jest": "^1.5.0", "@material-ui/core": "^4.12.3", "@material-ui/icons": "^4.11.2", "@material-ui/lab": "^4.0.0-alpha.60", diff --git a/src/renderer/components/confirm-dialog/confirm-dialog.tsx b/src/renderer/components/confirm-dialog/confirm-dialog.tsx index 3704dd96dc..e8450cc232 100644 --- a/src/renderer/components/confirm-dialog/confirm-dialog.tsx +++ b/src/renderer/components/confirm-dialog/confirm-dialog.tsx @@ -140,6 +140,7 @@ export class ConfirmDialog extends React.Component { isOpen={dialogState.isOpen} onClose={this.onClose} close={this.close} + {...(dialogState.isOpen ? { "data-testid":"confirmation-dialog" } : {})} >
{icon} {message} @@ -158,6 +159,7 @@ export class ConfirmDialog extends React.Component { label={labelOk} onClick={prevDefault(this.ok)} waiting={this.isSaving} + data-testid="confirm" {...okButtonProps} />
diff --git a/src/renderer/components/dialog/dialog.tsx b/src/renderer/components/dialog/dialog.tsx index be28789eff..83a49608cb 100644 --- a/src/renderer/components/dialog/dialog.tsx +++ b/src/renderer/components/dialog/dialog.tsx @@ -41,6 +41,7 @@ export interface DialogProps { modal?: boolean; pinned?: boolean; animated?: boolean; + "data-testid"?: string; } interface DialogState { @@ -149,7 +150,7 @@ export class Dialog extends React.PureComponent { }; render() { - const { modal, animated, pinned } = this.props; + const { modal, animated, pinned, "data-testid": testId } = this.props; let { className } = this.props; className = cssNames("Dialog flex center", className, { modal, pinned }); @@ -158,6 +159,7 @@ export class Dialog extends React.PureComponent { className={className} onClick={stopPropagation} ref={this.ref} + data-testid={testId} >
this.contentElem = e}> {this.props.children} diff --git a/src/renderer/components/kube-object-menu/__snapshots__/kube-object-menu.test.tsx.snap b/src/renderer/components/kube-object-menu/__snapshots__/kube-object-menu.test.tsx.snap new file mode 100644 index 0000000000..c7b3a53142 --- /dev/null +++ b/src/renderer/components/kube-object-menu/__snapshots__/kube-object-menu.test.tsx.snap @@ -0,0 +1,371 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`kube-object-menu given kube object renders 1`] = ` + +
+
+ +
+
+