From b1fbbe737f8bc3b02b549e59a161b8a23d31a805 Mon Sep 17 00:00:00 2001 From: Sachin Chaurasiya Date: Tue, 21 Jun 2022 14:21:12 +0530 Subject: [PATCH] Fix #5542 UI : Table Query Card Is Not Expandable (#5543) * Fix #5542 UI : Table Query Card Is Not Expandable * Fix unit test * FIx Unit test --- .../DatasetDetails.component.tsx | 24 +++++-- .../DatasetDetails/DatasetDetails.test.tsx | 2 +- .../TableQueries/QueryCard.test.tsx | 7 ++ .../src/components/TableQueries/QueryCard.tsx | 72 ++++++++++--------- .../TableQueries/TableQueries.test.tsx | 4 -- .../components/TableQueries/TableQueries.tsx | 15 ++-- 6 files changed, 67 insertions(+), 57 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/src/components/DatasetDetails/DatasetDetails.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/DatasetDetails/DatasetDetails.component.tsx index dabcb65c21b..996a4700f04 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/DatasetDetails/DatasetDetails.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/DatasetDetails/DatasetDetails.component.tsx @@ -14,7 +14,7 @@ import classNames from 'classnames'; import { isEqual, isNil, isUndefined } from 'lodash'; import { ColumnJoins, EntityTags, ExtraInfo } from 'Models'; -import React, { RefObject, useEffect, useState } from 'react'; +import React, { Fragment, RefObject, useEffect, useState } from 'react'; import AppState from '../../AppState'; import { FQN_SEPARATOR_CHAR } from '../../constants/char.constants'; import { getTeamAndUserDetailsPath, ROUTES } from '../../constants/constants'; @@ -682,12 +682,22 @@ const DatasetDetails: React.FC = ({
-
- -
+ {!isUndefined(tableQueries) && tableQueries.length > 0 ? ( + +
+ +
+ + ) : ( +
+ No queries data available. +
+ )}
)} {activeTab === 5 && ( diff --git a/openmetadata-ui/src/main/resources/ui/src/components/DatasetDetails/DatasetDetails.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/DatasetDetails/DatasetDetails.test.tsx index cb5c4dbb6f5..eb60fb1d429 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/DatasetDetails/DatasetDetails.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/DatasetDetails/DatasetDetails.test.tsx @@ -296,7 +296,7 @@ describe('Test MyDataDetailsPage page', () => { wrapper: MemoryRouter, } ); - const tableQueries = await findByTestId(container, 'table-queries'); + const tableQueries = await findByTestId(container, 'no-queries'); expect(tableQueries).toBeInTheDocument(); }); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/QueryCard.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/QueryCard.test.tsx index 65251b1fefc..c8eb3a6982d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/QueryCard.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/QueryCard.test.tsx @@ -12,6 +12,7 @@ */ import { + findByTestId, findByText, getByTestId, queryByTestId, @@ -55,9 +56,15 @@ describe('Test QueryCard Component', () => { /CopyToClipboardButton/i ); + const expandButton = await findByTestId( + container, + 'expand-collapse-button' + ); + expect(queryHeader).toBeInTheDocument(); expect(query).toBeInTheDocument(); expect(copyQueryButton).toBeInTheDocument(); + expect(expandButton).toBeInTheDocument(); }); it('Should not render header if user is undefined', async () => { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/QueryCard.tsx b/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/QueryCard.tsx index e0ab5b59f67..04f5fe6b69c 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/QueryCard.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/QueryCard.tsx @@ -28,54 +28,58 @@ const QueryCard: FC = ({ className, query }) => { const [expanded, setExpanded] = useState(false); return ( -
-
setExpanded((pre) => !pre)}> - {!isUndefined(query.user) && !isUndefined(query.duration) ? ( -
-

- Last run by{' '} - - {' '} - - and took{' '} - {query.duration} seconds -

- - {' '} + + and took{' '} + {query.duration} seconds +

+
+ ) : null} +
+
+ + -
- ) : null} -
-
-
- - + { + e.preventDefault(); + e.stopPropagation(); + }}> + + { } ); const queryCards = queryAllByText(container, /QueryCard/i); - const noQueries = await findByTestId(container, 'no-queries'); expect(queryCards).toHaveLength(0); - expect(noQueries).toBeInTheDocument(); }); it('Check if TableQueries component has queries as empty list', async () => { @@ -154,9 +152,7 @@ describe('Test TableQueries Component', () => { } ); const queryCards = queryAllByText(container, /QueryCard/i); - const noQueries = await findByTestId(container, 'no-queries'); expect(queryCards).toHaveLength(0); - expect(noQueries).toBeInTheDocument(); }); }); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/TableQueries.tsx b/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/TableQueries.tsx index 1104f38024a..bdc13299687 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/TableQueries.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/TableQueries/TableQueries.tsx @@ -11,7 +11,6 @@ * limitations under the License. */ -import { isUndefined } from 'lodash'; import React, { FC, HTMLAttributes } from 'react'; import { Table } from '../../generated/entity/data/table'; import { withLoader } from '../../hoc/withLoader'; @@ -21,19 +20,13 @@ interface TableQueriesProp extends HTMLAttributes { queries: Table['tableQueries']; } -const TableQueries: FC = ({ queries, className }) => { +const TableQueries: FC = ({ queries = [], className }) => { return (
- {!isUndefined(queries) && queries.length > 0 ? ( - queries.map((query, index) => ) - ) : ( -
- No queries data available. -
- )} + {queries.map((query, index) => ( + + ))}
);