From eff170034aa7e3ab30ce7cfc1b1e83f6012c9e1d Mon Sep 17 00:00:00 2001 From: Zalenski Egor <63463140+zalenskiSofteq@users.noreply.github.com> Date: Fri, 23 Sep 2022 13:23:54 +0300 Subject: [PATCH 1/2] #RI-3371 - User cannot open Workbench --- .../QueryCardTooltip/QueryCardTooltip.spec.tsx | 9 +++++++++ .../QueryCardTooltip/QueryCardTooltip.tsx | 14 +++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.spec.tsx b/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.spec.tsx index a36a484c87..33a8833808 100644 --- a/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.spec.tsx +++ b/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.spec.tsx @@ -1,5 +1,6 @@ import React from 'react' import { instance, mock } from 'ts-mockito' +import { EMPTY_COMMAND } from 'uiSrc/constants' import { render } from 'uiSrc/utils/test-utils' import QueryCardTooltip, { Props } from './QueryCardTooltip' @@ -9,4 +10,12 @@ describe('QueryCardTooltip', () => { it('should render', () => { expect(render()).toBeTruthy() }) + + it(`should show ${EMPTY_COMMAND} if command=null and summary=`, () => { + const { queryByTestId } = render( + + ) + + expect(queryByTestId('query-card-tooltip-anchor')).toHaveTextContent(EMPTY_COMMAND) + }) }) diff --git a/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.tsx b/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.tsx index 76c39f325a..c8293720f0 100644 --- a/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.tsx +++ b/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.tsx @@ -3,12 +3,13 @@ import { EuiToolTip } from '@elastic/eui' import { take } from 'lodash' import cx from 'classnames' -import { truncateText } from 'uiSrc/utils' +import { Nullable, truncateText } from 'uiSrc/utils' +import { EMPTY_COMMAND } from 'uiSrc/constants' import styles from './styles.module.scss' export interface Props { - query: string - summary?: string + query: Nullable + summary?: Nullable maxLinesNumber?: number } @@ -19,10 +20,9 @@ interface IQueryLine { } const QueryCardTooltip = (props: Props) => { - const { query = '', maxLinesNumber = 20, summary } = props + const { query = '', maxLinesNumber = 20, summary = '' } = props - let queryLines: IQueryLine[] = query - .split('\n') + let queryLines: IQueryLine[] = (query ?? EMPTY_COMMAND).split('\n') .map((query: string, i) => ({ value: truncateText(query, 497, '...'), index: i @@ -56,7 +56,7 @@ const QueryCardTooltip = (props: Props) => { content={<>{contentItems}} position="bottom" > - {summary || query} + {summary ?? query ?? EMPTY_COMMAND} ) } From 6367d4648b64db4fcaea1af4ea96e3433818f280 Mon Sep 17 00:00:00 2001 From: Zalenski Egor <63463140+zalenskiSofteq@users.noreply.github.com> Date: Tue, 27 Sep 2022 15:42:32 +0300 Subject: [PATCH 2/2] #RI-3371 - User cannot open workbench --- redisinsight/ui/src/components/query-card/QueryCard.tsx | 2 +- .../query-card/QueryCardTooltip/QueryCardTooltip.tsx | 4 ++-- redisinsight/ui/src/utils/plugins.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/redisinsight/ui/src/components/query-card/QueryCard.tsx b/redisinsight/ui/src/components/query-card/QueryCard.tsx index 46007691cb..aa320689c5 100644 --- a/redisinsight/ui/src/components/query-card/QueryCard.tsx +++ b/redisinsight/ui/src/components/query-card/QueryCard.tsx @@ -81,7 +81,7 @@ const QueryCard = (props: Props) => { const [viewTypeSelected, setViewTypeSelected] = useState(queryType) const [summaryText, setSummaryText] = useState('') const [selectedViewValue, setSelectedViewValue] = useState( - getDefaultPlugin(visualizations, command) || queryType + getDefaultPlugin(visualizations, command || '') || queryType ) const dispatch = useDispatch() diff --git a/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.tsx b/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.tsx index c8293720f0..fa532584fa 100644 --- a/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.tsx +++ b/redisinsight/ui/src/components/query-card/QueryCardTooltip/QueryCardTooltip.tsx @@ -22,7 +22,7 @@ interface IQueryLine { const QueryCardTooltip = (props: Props) => { const { query = '', maxLinesNumber = 20, summary = '' } = props - let queryLines: IQueryLine[] = (query ?? EMPTY_COMMAND).split('\n') + let queryLines: IQueryLine[] = (query || EMPTY_COMMAND).split('\n') .map((query: string, i) => ({ value: truncateText(query, 497, '...'), index: i @@ -56,7 +56,7 @@ const QueryCardTooltip = (props: Props) => { content={<>{contentItems}} position="bottom" > - {summary ?? query ?? EMPTY_COMMAND} + {summary || query || EMPTY_COMMAND} ) } diff --git a/redisinsight/ui/src/utils/plugins.ts b/redisinsight/ui/src/utils/plugins.ts index bc6d7f651e..ba85b043a9 100644 --- a/redisinsight/ui/src/utils/plugins.ts +++ b/redisinsight/ui/src/utils/plugins.ts @@ -1,10 +1,10 @@ import { IPluginVisualization } from 'uiSrc/slices/interfaces' import { getBaseApiUrl } from 'uiSrc/utils/common' -export const getVisualizationsByCommand = (query: string, visualizations: IPluginVisualization[]) => +export const getVisualizationsByCommand = (query: string = '', visualizations: IPluginVisualization[]) => visualizations.filter((visualization: IPluginVisualization) => visualization.matchCommands.some((matchCommand) => - query.startsWith(matchCommand) || (new RegExp(`^${matchCommand}`, 'i')).test(query))) + query?.startsWith(matchCommand) || (new RegExp(`^${matchCommand}`, 'i')).test(query))) export const urlForAsset = (basePluginUrl: string, path: string) => { const baseApiUrl = getBaseApiUrl()