From f0cda8464f34a21f45f18fa557e980fb2f105d8e Mon Sep 17 00:00:00 2001 From: Karan Hotchandani <33024356+karanh37@users.noreply.github.com> Date: Wed, 29 May 2024 12:10:02 +0530 Subject: [PATCH] Fix#16404 - Show Node level lineage by default (#16445) * default to node layer * update cypress * code cleanup * fix cypress --- .../ui/cypress/e2e/Flow/Lineage.spec.ts | 23 ++-- .../EntityLineage/CustomControls.test.tsx | 2 - .../EntityLineage/CustomNodeV1.test.tsx | 1 - .../LineageLayers/LineageLayers.test.tsx | 1 - .../LineageLayers/LineageLayers.tsx | 8 +- .../LineageLayers/lineage-layers.less | 4 + .../EntityLineage/entity-lineage.style.less | 1 - .../components/Lineage/Lineage.component.tsx | 3 + .../ui/src/constants/Lineage.constants.ts | 2 +- .../LineageProvider.interface.tsx | 3 - .../LineageProvider/LineageProvider.tsx | 120 +++++++----------- .../resources/ui/src/styles/variables.less | 1 + .../ui/src/utils/EntityLineageUtils.tsx | 22 +++- 13 files changed, 96 insertions(+), 95 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Lineage.spec.ts b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Lineage.spec.ts index 7252fa9a604..d5cd9baecb5 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Lineage.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Lineage.spec.ts @@ -199,15 +199,18 @@ const addPipelineBetweenNodes = ( } }; -const expandCols = (nodeFqn, hasShowMore) => { - cy.get( - `[data-testid="lineage-node-${nodeFqn}"] [data-testid="expand-cols-btn"]` - ).click({ force: true }); - if (hasShowMore) { - cy.get( - `[data-testid="lineage-node-${nodeFqn}"] [data-testid="show-more-cols-btn"]` - ).click({ force: true }); - } +const activateColumnLayer = () => { + cy.get('[data-testid="lineage-layer-btn"]').click(); + cy.get('[data-testid="lineage-layer-column-btn"]').click(); +}; + +const verifyColumnLayerInactive = () => { + cy.get('[data-testid="lineage-layer-btn"]').click(); // Open Layer popover + cy.get('[data-testid="lineage-layer-column-btn"]').should( + 'not.have.class', + 'active' + ); + cy.get('[data-testid="lineage-layer-btn"]').click(); // Close Layer popover }; const addColumnLineage = (fromNode, toNode, exitEditMode = true) => { @@ -243,6 +246,7 @@ describe('Lineage verification', { tags: 'DataAssets' }, () => { }); cy.get('[data-testid="lineage"]').click(); + verifyColumnLayerInactive(); cy.get('[data-testid="edit-lineage"]').click(); performZoomOut(); @@ -329,6 +333,7 @@ describe('Lineage verification', { tags: 'DataAssets' }, () => { const targetEntity = LINEAGE_ITEMS[i]; if (targetEntity.columns.length > 0) { addPipelineBetweenNodes(sourceEntity, targetEntity); + activateColumnLayer(); // Add column lineage addColumnLineage(sourceEntity, targetEntity); cy.get('[data-testid="edit-lineage"]').click(); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/CustomControls.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/CustomControls.test.tsx index 1b997cf1294..dddc1e27657 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/CustomControls.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/CustomControls.test.tsx @@ -20,7 +20,6 @@ import CustomControlsComponent from './CustomControls.component'; const mockOnOptionSelect = jest.fn(); const mockOnLineageConfigUpdate = jest.fn(); const mockOnEditLineageClick = jest.fn(); -const mockOnExpandColumnClick = jest.fn(); const mockHandleFullScreenViewClick = jest.fn(); const mockOnExitFullScreenViewClick = jest.fn(); const mockOnZoomHandler = jest.fn(); @@ -50,7 +49,6 @@ jest.mock('reactflow', () => ({ jest.mock('../../../context/LineageProvider/LineageProvider', () => ({ useLineageProvider: jest.fn().mockImplementation(() => ({ - toggleColumnView: mockOnExpandColumnClick, onLineageEditClick: mockOnEditLineageClick, onExportClick: mockOnExportClick, activeLayer: [LineageLayerView.COLUMN], diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/CustomNodeV1.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/CustomNodeV1.test.tsx index dea7a40979b..5c98ab7603d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/CustomNodeV1.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/CustomNodeV1.test.tsx @@ -87,7 +87,6 @@ jest.mock('../../../context/LineageProvider/LineageProvider', () => ({ downstreamEdges: [], }, activeLayer: [LineageLayerView.COLUMN], - expandedNodes: [], fetchPipelineStatus: jest.fn(), onColumnClick: onMockColumnClick, })), diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/LineageLayers/LineageLayers.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/LineageLayers/LineageLayers.test.tsx index 4a92dad514b..30f1f8ed954 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/LineageLayers/LineageLayers.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/LineageLayers/LineageLayers.test.tsx @@ -61,7 +61,6 @@ jest.mock('../../../../context/LineageProvider/LineageProvider', () => ({ downstreamEdges: [], }, activeLayer: [], - expandedNodes: [], fetchPipelineStatus: jest.fn(), onColumnClick: onMockColumnClick, onUpdateLayerView: onMockUpdateLayerView, diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/LineageLayers/LineageLayers.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/LineageLayers/LineageLayers.tsx index a445309c3ae..dd7797ba5eb 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/LineageLayers/LineageLayers.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/LineageLayers/LineageLayers.tsx @@ -24,7 +24,7 @@ import { getEntityIcon } from '../../../../utils/TableUtils'; import './lineage-layers.less'; const LineageLayers = () => { - const { activeLayer, onUpdateLayerView } = useLineageProvider(); + const { activeLayer, onUpdateLayerView, isEditMode } = useLineageProvider(); const onButtonClick = (value: LineageLayerView) => { const index = activeLayer.indexOf(value); @@ -43,6 +43,7 @@ const LineageLayers = () => { className={classNames('lineage-layer-button h-15', { active: activeLayer.includes(LineageLayerView.COLUMN), })} + data-testid="lineage-layer-column-btn" onClick={() => onButtonClick(LineageLayerView.COLUMN)}>