From a34ea58b1040f0d98fb75679438515b74bb69623 Mon Sep 17 00:00:00 2001 From: Edoardo Sabadelli Date: Fri, 3 May 2024 10:24:52 +0200 Subject: [PATCH] test: add regression test for DHIS2-17297 --- cypress/elements/pivotTable.js | 3 + cypress/integration/options/totals.cy.js | 82 ++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 cypress/integration/options/totals.cy.js diff --git a/cypress/elements/pivotTable.js b/cypress/elements/pivotTable.js index 3b41d3982d..4463645e36 100644 --- a/cypress/elements/pivotTable.js +++ b/cypress/elements/pivotTable.js @@ -1,6 +1,9 @@ const valueCellEl = 'visualization-value-cell' const headerCellEl = 'visualization-column-header' +export const expectTableToBeVisible = () => + cy.get('.pivot-table-container').should('have.length', 1).and('be.visible') + export const clickTableValueCell = (index) => cy.getBySel(valueCellEl).eq(index).click() diff --git a/cypress/integration/options/totals.cy.js b/cypress/integration/options/totals.cy.js new file mode 100644 index 0000000000..81d5adfe8e --- /dev/null +++ b/cypress/integration/options/totals.cy.js @@ -0,0 +1,82 @@ +import { + AXIS_ID_COLUMNS, + AXIS_ID_ROWS, + DIMENSION_ID_DATA, + DIMENSION_ID_PERIOD, + VIS_TYPE_PIVOT_TABLE, + visTypeDisplayNames, +} from '@dhis2/analytics' +import { checkCheckbox } from '../../elements/common.js' +import { + clickDimensionModalHideButton, + clickDimensionModalUpdateButton, + expectDimensionModalToBeVisible, + selectAllItemsByButton, + selectDataElements, + selectFixedPeriods, + unselectAllItemsByButton, +} from '../../elements/dimensionModal/index.js' +import { + clickContextMenuAdd, + openContextMenu as openDimPanelContextMenu, + openDimension, +} from '../../elements/dimensionsPanel.js' +import { clickContextMenuMove, openContextMenu } from '../../elements/layout.js' +import { openOptionsModal } from '../../elements/menuBar.js' +import { + OPTIONS_TAB_DATA, + clickOptionsModalHideButton, +} from '../../elements/optionsModal/index.js' +import { + colTotalsOptionEl, + expectColumnsTotalsToBeChecked, +} from '../../elements/optionsModal/totals.js' +import { expectTableToBeVisible } from '../../elements/pivotTable.js' +import { goToStartPage } from '../../elements/startScreen.js' +import { changeVisType } from '../../elements/visualizationTypeSelector.js' +import { TEST_CUSTOM_DIMENSIONS } from '../../utils/data.js' + +const AREA_DIMENSION = TEST_CUSTOM_DIMENSIONS.find((dim) => dim.name === 'Area') + +describe('Options - Column totals', () => { + describe('Regression test for DHIS2-17297', () => { + it('does not crash', () => { + goToStartPage() + changeVisType(visTypeDisplayNames[VIS_TYPE_PIVOT_TABLE]) + + openOptionsModal(OPTIONS_TAB_DATA) + checkCheckbox(colTotalsOptionEl) + + expectColumnsTotalsToBeChecked() + + clickOptionsModalHideButton() + + openContextMenu(DIMENSION_ID_DATA) + clickContextMenuMove(DIMENSION_ID_DATA, AXIS_ID_ROWS) + openContextMenu(DIMENSION_ID_PERIOD) + clickContextMenuMove(DIMENSION_ID_PERIOD, AXIS_ID_COLUMNS) + + openDimension(DIMENSION_ID_DATA) + selectDataElements(['ART enrollment stage 1']) + clickDimensionModalHideButton() + + const year = new Date().getFullYear().toString() + openDimension(DIMENSION_ID_PERIOD) + unselectAllItemsByButton() + selectFixedPeriods( + [`May ${year}`, `June ${year}`, `July ${year}`], + 'Monthly' + ) + clickDimensionModalHideButton() + + openDimPanelContextMenu(AREA_DIMENSION.id) + clickContextMenuAdd(AREA_DIMENSION.id, AXIS_ID_ROWS) + expectDimensionModalToBeVisible(AREA_DIMENSION.id) + selectAllItemsByButton() + + clickDimensionModalUpdateButton() + + expectTableToBeVisible() + }) + }) +})