@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.17.0 → 4.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dpr/components/_catalogue/catalogue-list/utils.js +1 -1
- package/dpr/components/_catalogue/catalogue-list/utils.js.map +3 -3
- package/dpr/components/_catalogue/catalogue-list/utils.ts +4 -5
- package/dpr/components/_catalogue/catalogue-search/view.njk +1 -0
- package/dpr/components/_charts/chart/Buckets.js +1 -1
- package/dpr/components/_charts/chart/Buckets.js.map +3 -3
- package/dpr/components/_charts/chart/Buckets.ts +44 -36
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +1 -1
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +2 -2
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.ts +22 -14
- package/dpr/components/_charts/chart/heatmap/types.js +2 -0
- package/dpr/components/_charts/chart/heatmap/types.js.map +7 -0
- package/dpr/components/_charts/chart/heatmap/types.ts +6 -0
- package/dpr/components/_charts/utils.js +1 -1
- package/dpr/components/_charts/utils.js.map +3 -3
- package/dpr/components/_charts/utils.test.ts +10 -7
- package/dpr/components/_charts/utils.ts +57 -50
- package/dpr/components/_dashboards/dashboard/view.njk +1 -1
- package/dpr/components/_dashboards/dashboard-list/utils.js +1 -1
- package/dpr/components/_dashboards/dashboard-list/utils.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-list/utils.test.ts +3 -3
- package/dpr/components/_dashboards/dashboard-list/utils.ts +16 -12
- package/dpr/components/_dashboards/dashboard-section/view.njk +1 -1
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js +2 -0
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js.map +7 -0
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.ts +40 -0
- package/dpr/components/_dashboards/dashboard-visualisation/types.js +2 -0
- package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +7 -0
- package/dpr/components/_dashboards/dashboard-visualisation/types.ts +102 -0
- package/dpr/components/_dashboards/dashboard-visualisation/view.njk +1 -1
- package/dpr/components/_dashboards/scorecard/Scorecard.js +1 -1
- package/dpr/components/_dashboards/scorecard/Scorecard.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/Scorecard.ts +37 -29
- package/dpr/components/_dashboards/scorecard/types.js.map +1 -1
- package/dpr/components/_dashboards/scorecard/types.ts +1 -0
- package/dpr/components/_dashboards/scorecard/utils.js +1 -1
- package/dpr/components/_dashboards/scorecard/utils.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/utils.test.ts +13 -4
- package/dpr/components/_dashboards/scorecard/utils.ts +6 -5
- package/dpr/components/_dashboards/scorecard/view.njk +6 -5
- package/dpr/components/_dashboards/scorecard-group/view.njk +4 -4
- package/dpr/components/_reports/report-actions/types.d.js.map +1 -1
- package/dpr/components/_reports/report-actions/types.d.ts +1 -1
- package/dpr/components/_reports/report-heading/view.njk +1 -1
- package/dpr/data/dashboardClient.js +1 -1
- package/dpr/data/dashboardClient.js.map +2 -2
- package/dpr/data/dashboardClient.ts +8 -7
- package/dpr/data/reportingClient.js +1 -1
- package/dpr/data/reportingClient.js.map +1 -1
- package/dpr/data/reportingClient.ts +1 -1
- package/dpr/middleware/reportAuthoriser.js +1 -1
- package/dpr/middleware/reportAuthoriser.js.map +3 -3
- package/dpr/middleware/reportAuthoriser.ts +9 -20
- package/dpr/routes/journeys/download-report/controller.js +1 -1
- package/dpr/routes/journeys/download-report/controller.js.map +3 -3
- package/dpr/routes/journeys/download-report/controller.ts +4 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.ts +1 -0
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.ts +1 -0
- package/dpr/routes/journeys/download-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/tests.cy.ts +2 -8
- package/dpr/routes/journeys/download-report/utils.js +1 -1
- package/dpr/routes/journeys/download-report/utils.js.map +3 -3
- package/dpr/routes/journeys/download-report/utils.ts +10 -7
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.ts +1 -0
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.ts +5 -14
- package/dpr/routes/journeys/my-reports/bookmarks/utils.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/utils.ts +11 -5
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.ts +4 -7
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.ts +1 -0
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.ts +1 -0
- package/dpr/routes/journeys/request-missing-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/tests.cy.ts +3 -5
- package/dpr/routes/journeys/request-report/filters/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/request-report/filters/tests.cy.ts +3 -6
- package/dpr/routes/journeys/request-report/filters/utils.js +1 -1
- package/dpr/routes/journeys/request-report/filters/utils.js.map +2 -2
- package/dpr/routes/journeys/request-report/filters/utils.ts +2 -3
- package/dpr/routes/journeys/request-report/status/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/status/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-report/status/tests.cy.ts +2 -7
- package/dpr/routes/journeys/request-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/request-report/tests.cy.ts +5 -21
- package/dpr/routes/journeys/view-report/async/controller.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/controller.ts +2 -2
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.ts +2 -10
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +100 -95
- package/dpr/routes/journeys/view-report/async/report/controller.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/report/controller.ts +4 -6
- package/dpr/routes/journeys/view-report/async/report/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/tests.cy.ts +8 -19
- package/dpr/routes/journeys/view-report/async/report/types.js +2 -0
- package/dpr/routes/journeys/view-report/async/report/types.js.map +7 -0
- package/dpr/routes/journeys/view-report/async/report/types.ts +31 -0
- package/dpr/routes/journeys/view-report/async/report/utils.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/report/utils.ts +173 -136
- package/dpr/routes/journeys/view-report/sync/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/view-report/sync/tests.cy.ts +3 -5
- package/dpr/services/dashboardService.js +1 -1
- package/dpr/services/dashboardService.js.map +2 -2
- package/dpr/services/dashboardService.ts +7 -5
- package/dpr/services/productCollection/productCollectionService.js +1 -1
- package/dpr/services/productCollection/productCollectionService.js.map +2 -2
- package/dpr/services/productCollection/productCollectionService.ts +3 -3
- package/dpr/services/reportingService.js +1 -1
- package/dpr/services/reportingService.js.map +1 -1
- package/dpr/services/reportingService.ts +1 -1
- package/dpr/types/AsyncReportUtils.js.map +1 -1
- package/dpr/types/AsyncReportUtils.ts +3 -4
- package/dpr/types/Charts.js +1 -1
- package/dpr/types/Charts.js.map +3 -3
- package/dpr/types/Charts.ts +0 -82
- package/dpr/types/Metrics.js +1 -1
- package/dpr/types/Metrics.js.map +1 -1
- package/dpr/types/Metrics.ts +7 -0
- package/dpr/types/ReportQuery.js +1 -1
- package/dpr/types/ReportQuery.js.map +3 -3
- package/dpr/types/ReportQuery.ts +24 -15
- package/dpr/types/Services.d.js +1 -1
- package/dpr/types/Services.d.js.map +1 -1
- package/dpr/types/Services.d.ts +2 -0
- package/dpr/types/api.d.js.map +1 -1
- package/dpr/types/api.d.ts +14 -16
- package/dpr/utils/Personalisation/personalisationUtils.js +1 -1
- package/dpr/utils/Personalisation/personalisationUtils.js.map +3 -3
- package/dpr/utils/Personalisation/personalisationUtils.ts +15 -6
- package/dpr/utils/UserStoreItemBuilder.js +1 -1
- package/dpr/utils/UserStoreItemBuilder.js.map +1 -1
- package/dpr/utils/UserStoreItemBuilder.ts +2 -2
- package/dpr/utils/datasetHelper.js +1 -1
- package/dpr/utils/datasetHelper.js.map +3 -3
- package/dpr/utils/datasetHelper.test.ts +11 -11
- package/dpr/utils/datasetHelper.ts +23 -8
- package/dpr/utils/logger.js +1 -1
- package/dpr/utils/logger.js.map +3 -3
- package/dpr/utils/logger.ts +6 -1
- package/package.json +2 -1
- package/dpr/components/_charts/chart/DashboardVisualisation.js +0 -2
- package/dpr/components/_charts/chart/DashboardVisualisation.js.map +0 -7
- package/dpr/components/_charts/chart/DashboardVisualisation.ts +0 -43
- package/dpr/components/_dashboards/dashboard/types.js +0 -2
- package/dpr/components/_dashboards/dashboard/types.js.map +0 -7
- package/dpr/components/_dashboards/dashboard/types.ts +0 -120
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../src/dpr/routes/journeys/view-report/async/report/tests.cy.ts"],
|
|
4
|
-
"sourcesContent": ["import { checkSelectedFilterValues, requestReport } from '../../../../../../../cypress-tests/cypressUtils'\nimport DateMapper from '../../../../../utils/DateMapper/DateMapper'\n\ncontext('Viewing a report', () => {\n const path = '/embedded/platform/'\n let viewReportUrl: string\n let tableId: string\n\n describe('List report page', () => {\n before(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubGetProductCollections')\n cy.task('stubReportStatusMock')\n cy.task('stubReportsFinishedStatus')\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubReportsFinishedStatus')\n cy.task('stubTestDashboard8')\n cy.task('stubMockDashboardsStatusFinished')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubRequestSuccessResult10')\n cy.task('stubRequestSuccessReportTablesCount')\n cy.task('stubRequestSuccessResult100')\n cy.task('stubViewAsyncReportingResults')\n\n // Request and run a report so we can go back to it for each test\n requestReport({ name: 'Successful Report', description: 'this will succeed', path })\n cy.url().then((url) => {\n viewReportUrl = url\n const urlArr = url.split('/')\n tableId = urlArr[urlArr.length - 2]\n })\n })\n\n beforeEach(() => {\n cy.visit(viewReportUrl)\n })\n\n describe('Report details', () => {\n it('should show the report details', () => {\n cy.findAllByRole('group').contains('Report details').should('be.visible').click()\n\n cy.findAllByRole('group')\n .contains('Report details')\n .parent()\n .parent()\n .within(() => {\n cy.findAllByRole('row').each((row, index) => {\n cy.wrap(row).within(() => {\n switch (index) {\n case 0:\n cy.findAllByRole('cell', { name: 'Name:' }).should('exist')\n cy.findAllByRole('cell', { name: 'Successful Report' }).should('exist')\n break\n case 1:\n cy.findAllByRole('cell', { name: 'Product:' }).should('exist')\n cy.findAllByRole('cell', { name: 'Successful Report' }).should('exist')\n break\n case 2:\n cy.findAllByRole('cell', { name: 'Description:' }).should('exist')\n cy.findAllByRole('cell', { name: 'this will succeed' }).should('exist')\n break\n case 3:\n cy.findAllByRole('cell', { name: 'Classification:' }).should('exist')\n cy.findAllByRole('cell', { name: 'OFFICIAL' }).should('exist')\n break\n case 4:\n cy.findAllByRole('cell', { name: 'Requested at:' }).should('exist')\n cy.findAllByRole('cell', { name: /\\d{1,2}\\/\\d{1,2}\\/\\d{2,4}/ }).should('exist')\n break\n case 5:\n cy.findAllByRole('cell', { name: 'Applied Filters:' }).should('exist')\n cy.findAllByRole('listitem').each((item, i) => {\n switch (i) {\n case 0:\n cy.wrap(item).contains('Field 1: value1.2')\n break\n case 1:\n cy.wrap(item).contains('Field 3 start: 01/02/2003')\n break\n case 2:\n cy.wrap(item).contains('Field 3 end: 04/05/2006')\n break\n case 3:\n cy.wrap(item).contains('Field 7: 01/02/2005')\n break\n case 4:\n cy.wrap(item).contains('Field 8: value8.2,value8.3')\n break\n case 5:\n cy.wrap(item).contains('Sort column: Field 1')\n break\n case 6:\n cy.wrap(item).contains('Sort direction: Descending')\n break\n default:\n break\n }\n })\n break\n default:\n break\n }\n })\n })\n })\n })\n })\n\n describe('Actions', () => {\n it('should show the actions and go to the filters page when refresh action is clicked', () => {\n cy.findByLabelText('Refresh report').should('be.visible')\n cy.findByLabelText(/Print screen/)\n .should('be.visible')\n .should('be.disabled')\n cy.findByLabelText(/download/).should('be.visible')\n cy.findByLabelText(/Copy report link/).should('be.visible')\n cy.findByRole('button', { name: /Add bookmark/ }).should('be.visible')\n\n cy.findByLabelText('Refresh report').should('be.visible').click()\n cy.url().should(\n 'match',\n /.*\\/embedded\\/platform\\/dpr\\/request-report\\/report\\/request-examples\\/request-example-success\\/filters/i,\n )\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2006-05-04`)\n expect(location.search).to.contain(`filters.field7=2005-02-01`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n })\n })\n\n describe('Column interactions', () => {\n const expectInitialisedColumns = () => {\n cy.findByRole('checkbox', { name: 'Field 1' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 2' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 3' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 4' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 5' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 6' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 7' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 8' }).should('not.be.checked')\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`columns=field1`)\n expect(location.search).to.contain(`columns=field2`)\n expect(location.search).to.contain(`columns=field3`)\n expect(location.search).not.to.contain(`columns=field4`)\n expect(location.search).not.to.contain(`columns=field5`)\n expect(location.search).to.contain(`columns=field6`)\n expect(location.search).to.contain(`columns=field7`)\n expect(location.search).not.to.contain(`columns=field8`)\n })\n\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('row')\n .eq(1)\n .within(() => {\n cy.findAllByRole('columnheader').should('have.length', 5)\n })\n })\n })\n }\n\n const expectUpdatedColumns = () => {\n cy.findByRole('checkbox', { name: 'Field 1' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 2' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 4' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 5' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 6' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 7' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 8' }).should('be.checked')\n\n cy.location().should((location) => {\n expect(location.search).not.to.contain(`columns=field1`)\n expect(location.search).to.contain(`columns=field2`)\n expect(location.search).not.to.contain(`columns=field3`)\n expect(location.search).not.to.contain(`columns=field4`)\n expect(location.search).to.contain(`columns=field5`)\n expect(location.search).to.contain(`columns=field6`)\n expect(location.search).not.to.contain(`columns=field7`)\n expect(location.search).to.contain(`columns=field8`)\n })\n\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('row')\n .eq(1)\n .within(() => {\n cy.findAllByRole('columnheader').should('have.length', 4)\n })\n })\n })\n }\n\n const setColumnValues = () => {\n cy.findByRole('checkbox', { name: 'Field 1' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 3' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 5' }).check()\n cy.findByRole('checkbox', { name: 'Field 7' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 8' }).check()\n }\n\n it('should initialise the column content correctly', () => {\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .should('be.visible')\n .click()\n expectInitialisedColumns()\n cy.findAllByRole('group').contains('Show columns (5 of 8 shown)')\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('columnheader').each((head, index) => {\n switch (index) {\n case 0:\n cy.wrap(head).contains('Field 1')\n break\n case 1:\n cy.wrap(head).contains('Field 2')\n break\n case 2:\n cy.wrap(head).contains('Field 3')\n break\n case 3:\n cy.wrap(head).contains('Field 6')\n break\n case 4:\n cy.wrap(head).contains('Field 7')\n break\n default:\n break\n }\n })\n })\n })\n })\n\n it('should apply the columns', () => {\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .click()\n\n setColumnValues()\n\n cy.findByRole('button', { name: 'Apply columns' }).click()\n\n expectUpdatedColumns()\n\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('columnheader').each((head, index) => {\n switch (index) {\n case 0:\n cy.wrap(head).contains('Field 2')\n break\n case 1:\n cy.wrap(head).contains('Field 5')\n break\n case 2:\n cy.wrap(head).contains('Field 6')\n break\n case 3:\n cy.wrap(head).contains('Field 8')\n break\n default:\n break\n }\n })\n })\n })\n })\n\n it('should reset the columns to their DPD defaults', () => {\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .click()\n\n setColumnValues()\n cy.findByRole('button', { name: 'Apply columns' }).click()\n expectUpdatedColumns()\n\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .click()\n\n cy.findByRole('link', { name: 'Reset columns' }).click()\n\n expectInitialisedColumns()\n })\n\n it('should apply the columns from the URL', () => {\n cy.visit(\n `/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${tableId}/report?columns=field1&columns=field5&columns=field8`,\n )\n\n cy.findByRole('checkbox', { name: 'Field 1' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 2' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 4' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 5' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 6' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 7' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 8' }).should('be.checked')\n\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('columnheader').each((head, index) => {\n switch (index) {\n case 0:\n cy.wrap(head).contains('Field 1')\n break\n case 1:\n cy.wrap(head).contains('Field 2')\n break\n case 2:\n cy.wrap(head).contains('Field 5')\n break\n case 3:\n cy.wrap(head).contains('Field 6')\n break\n case 4:\n cy.wrap(head).contains('Field 8')\n break\n default:\n break\n }\n })\n })\n })\n })\n\n it('should only apply mandatory columms', () => {\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .click()\n\n cy.findByRole('checkbox', { name: 'Field 1' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 3' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 7' }).uncheck()\n\n cy.findByRole('button', { name: 'Apply columns' }).click()\n\n cy.findByRole('checkbox', { name: 'Field 1' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 2' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 4' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 5' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 6' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 7' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 8' }).should('not.be.checked')\n\n cy.location().should((location) => {\n expect(location.search).not.to.contain(`columns=field1`)\n expect(location.search).to.contain(`columns=field2`)\n expect(location.search).not.to.contain(`columns=field3`)\n expect(location.search).not.to.contain(`columns=field4`)\n expect(location.search).not.to.contain(`columns=field5`)\n expect(location.search).to.contain(`columns=field6`)\n expect(location.search).not.to.contain(`columns=field7`)\n expect(location.search).not.to.contain(`columns=field8`)\n })\n\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('row')\n .eq(1)\n .within(() => {\n cy.findAllByRole('columnheader').should('have.length', 2)\n })\n })\n })\n })\n })\n\n describe('Paging interaction', () => {\n it('should show the table totals', () => {\n cy.findAllByRole('paragraph')\n .contains(/Showing \\d{1,4} to \\d{1,4} of \\d{1,4} results/)\n .should('exist')\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 20)\n })\n })\n })\n\n it('should change the page size', () => {\n cy.get('#page-size-select').select('10')\n cy.findAllByRole('paragraph')\n .contains(/Showing 1 to 10 of 100 results/)\n .should('exist')\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 10)\n })\n })\n })\n\n it('should change the page size via the URL', () => {\n cy.visit(\n `/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${tableId}/report?pageSize=100`,\n )\n cy.findAllByRole('paragraph')\n .contains(/100 total results/)\n .should('exist')\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 100)\n })\n })\n })\n\n it('should change the page', () => {\n cy.findByLabelText('Page 5').click()\n cy.location().should((location) => {\n expect(location.search).to.contain(`selectedPage=5`)\n })\n })\n\n it('should change the page via the URL', () => {\n cy.visit(\n `/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${tableId}/report?selectedPage=3`,\n )\n cy.findByRole('link', { current: 'page' }).contains('3')\n })\n })\n })\n\n describe('Interactive report', () => {\n const applyFilters = () => {\n cy.findByRole('button', { name: 'Apply filters' }).click()\n }\n\n const showFilters = () => {\n cy.findAllByRole('group')\n .contains(/Show filters/)\n .click()\n }\n\n before(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubGetProductCollections')\n cy.task('stubDefinitionFeatureTestingInteractive')\n cy.task('stubReportStatusMock')\n cy.task('stubAsyncRequestSuccessReportTablesCount')\n cy.task('stubViewAsyncReportingResults')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubRequestSuccessResult100')\n })\n\n describe('Apply filters', () => {\n before(() => {\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n cy.url().then((url) => {\n viewReportUrl = url\n })\n })\n\n beforeEach(() => {\n cy.visit(viewReportUrl)\n })\n\n const removeAllFilters = () => {\n for (let index = 0; index < 4; index += 1) {\n cy.findByLabelText('Selected filters').within(() => {\n cy.findAllByRole('link').first().click()\n })\n }\n }\n\n describe('Date range', () => {\n it('should apply the date range', () => {\n cy.findByRole('textbox', { name: 'From' }).should('have.value', '01/02/2003')\n cy.findByRole('textbox', { name: 'To' }).should('have.value', '04/05/2006')\n\n removeAllFilters()\n showFilters()\n\n cy.findByRole('textbox', { name: 'From' }).type('02/05/2025')\n cy.findByRole('textbox', { name: 'To' }).type('05/07/2025').blur()\n\n applyFilters()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field3.start=2025-05-02`)\n expect(location.search).to.contain(`filters.field3.end=2025-07-05`)\n })\n\n checkSelectedFilterValues({ length: 2, buttonValues: [{ key: 'Field 3', value: '02/05/2025 - 05/07/2025' }] })\n })\n\n it('should apply the relative daterange', () => {\n removeAllFilters()\n showFilters()\n\n cy.findByRole('tab', { name: 'Preset date ranges' }).click()\n cy.findByRole('radio', { name: 'Tomorrow' }).check()\n\n applyFilters()\n\n let startValue: string\n let endValue: string\n cy.findByRole('textbox', { name: 'From' })\n .invoke('val')\n .should('not.be.empty')\n .then((val: string) => {\n startValue = val\n })\n cy.findByRole('textbox', { name: 'To' })\n .invoke('val')\n .should('not.be.empty')\n .then((val: string) => {\n endValue = val\n })\n\n const dateMapper = new DateMapper()\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field3.start=${dateMapper.toDateString(startValue, 'iso')}`)\n expect(location.search).to.contain(`filters.field3.end=${dateMapper.toDateString(endValue, 'iso')}`)\n expect(location.search).to.contain(`filters.field3.relative-duration=tomorrow`)\n })\n\n checkSelectedFilterValues({ length: 2, buttonValues: [{ key: 'Field 3', value: 'Tomorrow' }] })\n })\n })\n\n describe('Multiselect', () => {\n it('should apply the multiselect values', () => {\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('be.checked')\n\n removeAllFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('not.be.checked')\n\n showFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).check()\n\n applyFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('not.be.checked')\n\n checkSelectedFilterValues({ length: 2, buttonValues: [{ key: 'Field 8', value: 'Value 8.1, Value 8.3' }] })\n })\n\n it('should set the selected filter values correctly', () => {\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('be.checked')\n\n removeAllFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('not.be.checked')\n\n showFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.2' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.4' }).check()\n\n applyFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('be.checked')\n\n checkSelectedFilterValues({\n length: 2,\n buttonValues: [{ key: 'Field 8', value: 'Value 8.1, Value 8.2, Value 8.3 + 1 more' }],\n })\n })\n\n it('should set the values correctly when only one checkbox selected', () => {\n removeAllFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('not.be.checked')\n\n showFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n\n applyFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('not.be.checked')\n\n checkSelectedFilterValues({\n length: 2,\n buttonValues: [{ key: 'Field 8', value: 'Value 8.1' }],\n })\n })\n })\n\n it('Applying filters should persist current applied columns', () => {\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .should('be.visible')\n .click()\n\n cy.findByRole('checkbox', { name: 'Field 1' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 3' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 5' }).check()\n cy.findByRole('checkbox', { name: 'Field 7' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 8' }).check()\n\n cy.findByRole('button', { name: 'Apply columns' }).click()\n cy.findAllByRole('group').contains('Show columns (4 of 8 shown)')\n\n showFilters()\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).check()\n applyFilters()\n\n cy.findAllByRole('group').contains('Show columns (4 of 8 shown)')\n })\n })\n\n describe('User defined interactive defaults', () => {\n const saveDefaultsButton = () => {\n return cy.findByRole('button', { name: 'Save current filter values as defaults' })\n }\n const updateDefaultsButton = () => {\n return cy.findByRole('button', { name: 'Update defaults' })\n }\n const deleteDefaultsButton = () => {\n return cy.findByRole('button', { name: 'Delete defaults' })\n }\n\n const checkSelectedFiltersInUserReports = ({\n name,\n product,\n length,\n selectedFilters,\n }: {\n name: string\n product: string\n length: number\n selectedFilters: { key: string; value: string }[]\n }) => {\n cy.findByLabelText(/Viewed \\(/).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes(name) && element.textContent.includes(product)\n },\n }).within(() => {\n cy.findAllByRole('listitem')\n .should('have.length', length)\n .each((li, index) => {\n if (selectedFilters[index]) {\n const { key, value } = selectedFilters[index]\n cy.wrap(li).contains(key)\n cy.wrap(li).contains(value)\n }\n })\n })\n })\n }\n\n it('should save the interactive filters correctly', () => {\n // request the report\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n\n // check the default filters\n checkSelectedFilterValues({\n length: 5,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ],\n })\n\n // update the filters\n showFilters()\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.4' }).check()\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.2')\n applyFilters()\n\n const selectedFiltersButtonValues = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.1, Value 8.2, Value 8.3 + 1 more' },\n ]\n checkSelectedFilterValues({\n length: 6,\n buttonValues: selectedFiltersButtonValues,\n })\n\n // save the filters\n saveDefaultsButton().click()\n\n // check for saved page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n // check the selected filters\n checkSelectedFilterValues({\n length: 6,\n buttonValues: selectedFiltersButtonValues,\n })\n })\n\n it('should init the report with saved interactive defaults', () => {\n // request the report\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n cy.url().then((url) => {\n viewReportUrl = url\n })\n\n // check saved defaults page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n const selectedFiltersButtonValues = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.1, Value 8.2, Value 8.3 + 1 more' },\n ]\n checkSelectedFilterValues({\n length: 6,\n buttonValues: selectedFiltersButtonValues,\n })\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n checkSelectedFiltersInUserReports({\n name: 'Interactive Report',\n product: 'Interactive Report',\n length: 5,\n selectedFilters: selectedFiltersButtonValues,\n })\n })\n\n it('should reset the filter values to the saved defaults', () => {\n cy.visit(viewReportUrl)\n\n // check saved defaults page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n const savedDefaultSelectedFilters = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.1, Value 8.2, Value 8.3 + 1 more' },\n ]\n checkSelectedFilterValues({\n length: 6,\n buttonValues: savedDefaultSelectedFilters,\n })\n\n // apply some filters\n showFilters()\n cy.findByRole('checkbox', { name: 'Value 8.1' }).uncheck()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).uncheck()\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.3')\n applyFilters()\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.3' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.4' },\n ],\n })\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n checkSelectedFiltersInUserReports({\n name: 'Interactive Report',\n product: 'Interactive Report',\n length: 5,\n selectedFilters: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.3' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.4' },\n ],\n })\n\n cy.visit(viewReportUrl)\n\n cy.findByRole('link', { name: 'Reset filters' }).click()\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: savedDefaultSelectedFilters,\n })\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n checkSelectedFiltersInUserReports({\n name: 'Interactive Report',\n product: 'Interactive Report',\n length: 5,\n selectedFilters: savedDefaultSelectedFilters,\n })\n })\n\n it('should update the filter values and init the report with the updated interactive defaults', () => {\n cy.visit(viewReportUrl)\n\n // check saved defaults page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.1, Value 8.2, Value 8.3 + 1 more' },\n ],\n })\n\n // apply some filters\n showFilters()\n cy.findByRole('checkbox', { name: 'Value 8.1' }).uncheck()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).uncheck()\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.3')\n applyFilters()\n\n const expectedSelectedValues = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.3' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.4' },\n ]\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: expectedSelectedValues,\n })\n\n updateDefaultsButton().click()\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: expectedSelectedValues,\n })\n\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n cy.url().then((url) => {\n viewReportUrl = url\n })\n\n // check the initial filter values match the default\n checkSelectedFilterValues({\n length: 6,\n buttonValues: expectedSelectedValues,\n })\n\n // check saved defaults page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n checkSelectedFiltersInUserReports({\n name: 'Interactive Report',\n product: 'Interactive Report',\n length: 5,\n selectedFilters: expectedSelectedValues,\n })\n })\n\n it('should delete the saved defaults', () => {\n cy.visit(viewReportUrl)\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.3' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.4' },\n ],\n })\n\n deleteDefaultsButton().click()\n\n // Expect DPD defaults to be applied\n checkSelectedFilterValues({\n length: 5,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ],\n })\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n checkSelectedFiltersInUserReports({\n name: 'Interactive Report',\n product: 'Interactive Report',\n length: 4,\n selectedFilters: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ],\n })\n })\n\n describe('Input types', () => {\n describe('Relative date range', () => {\n it('should save the relative daterange', () => {\n // request the report\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n\n checkSelectedFilterValues({\n length: 5,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ],\n })\n\n // update the filters\n showFilters()\n cy.findByRole('tab', { name: 'Preset date ranges' }).click()\n cy.findByRole('radio', { name: 'Tomorrow' }).check()\n applyFilters()\n\n const expectedUpdatedSelected = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: 'Tomorrow' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ]\n\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n // save the filters\n saveDefaultsButton().click()\n\n // check for saved page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n // check the selected filters\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n // request the report to check it defaults to saved\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n\n // check the selected filters\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n deleteDefaultsButton().click()\n })\n })\n\n describe('Multiselect', () => {\n it('should save a single multiselect value', () => {\n // request the report\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n\n checkSelectedFilterValues({\n length: 5,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ],\n })\n\n // update the filters\n showFilters()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).uncheck()\n applyFilters()\n\n const expectedUpdatedSelected = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2' },\n ]\n\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n // save the filters\n saveDefaultsButton().click()\n\n // check for saved page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n // check the selected filters\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n // request the report to check it defaults to saved\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n\n // check the selected filters\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n deleteDefaultsButton().click()\n })\n })\n })\n })\n\n describe('Sorting', () => {\n before(() => {\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n cy.url().then((url) => {\n viewReportUrl = url\n })\n })\n\n beforeEach(() => {\n cy.visit(viewReportUrl)\n })\n\n it('should show the sort direction in the column header and the url', () => {\n cy.findByRole('link', { name: 'Reset filters' }).click()\n\n // Initial state\n cy.findByRole('link', { name: 'Field 1' }).should('have.class', 'data-table-header-button-sort-ascending')\n cy.findByRole('link', { name: 'Field 2' }).should('have.class', 'data-table-header-button-sort-none')\n\n // Sort desc by field 1\n cy.findByRole('link', { name: 'Field 1' }).click()\n cy.findByRole('link', { name: 'Field 1' }).should('have.class', 'data-table-header-button-sort-descending')\n cy.findByRole('link', { name: 'Field 2' }).should('have.class', 'data-table-header-button-sort-none')\n cy.location().should((location) => {\n expect(location.search).to.contain(`&sortColumn=field1&sortedAsc=false`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n\n // Sort asc by field 1\n cy.findByRole('link', { name: 'Field 1' }).click()\n cy.findByRole('link', { name: 'Field 1' }).should('have.class', 'data-table-header-button-sort-ascending')\n cy.findByRole('link', { name: 'Field 2' }).should('have.class', 'data-table-header-button-sort-none')\n cy.location().should((location) => {\n expect(location.search).to.contain(`&sortColumn=field1&sortedAsc=true`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n\n // Sort asc by field 2\n cy.findByRole('link', { name: 'Field 2' }).click()\n cy.findByRole('link', { name: 'Field 2' }).should('have.class', 'data-table-header-button-sort-ascending')\n cy.findByRole('link', { name: 'Field 1' }).should('have.class', 'data-table-header-button-sort-none')\n cy.location().should((location) => {\n expect(location.search).to.contain(`&sortColumn=field2&sortedAsc=true`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n\n // Sort desc by field 2\n cy.findByRole('link', { name: 'Field 2' }).click()\n cy.findByRole('link', { name: 'Field 2' }).should('have.class', 'data-table-header-button-sort-descending')\n cy.findByRole('link', { name: 'Field 1' }).should('have.class', 'data-table-header-button-sort-none')\n cy.location().should((location) => {\n expect(location.search).to.contain(`&sortColumn=field2&sortedAsc=false`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n })\n })\n })\n})\n"],
|
|
5
|
-
"mappings": "2cAAA,IAAAA,EAAyD,2DACzDC,EAAuB,yDAEvB,QAAQ,mBAAoB,IAAM,CAChC,MAAMC,EAAO,sBACb,IAAIC,EACAC,EAEJ,SAAS,mBAAoB,IAAM,CACjC,OAAO,IAAM,CACX,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,iBAAiB,EACzB,GAAG,KAAK,2BAA2B,EACnC,GAAG,KAAK,sBAAsB,EAC9B,GAAG,KAAK,2BAA2B,EACnC,GAAG,KAAK,sCAAsC,EAC9C,GAAG,KAAK,2BAA2B,EACnC,GAAG,KAAK,oBAAoB,EAC5B,GAAG,KAAK,kCAAkC,EAC1C,GAAG,KAAK,4BAA4B,EACpC,GAAG,KAAK,4BAA4B,EACpC,GAAG,KAAK,qCAAqC,EAC7C,GAAG,KAAK,6BAA6B,EACrC,GAAG,KAAK,+BAA+B,KAGvC,iBAAc,CAAE,KAAM,oBAAqB,YAAa,oBAAqB,KAAAF,CAAK,CAAC,EACnF,GAAG,IAAI,EAAE,KAAMG,GAAQ,CACrBF,EAAgBE,EAChB,MAAMC,EAASD,EAAI,MAAM,GAAG,EAC5BD,EAAUE,EAAOA,EAAO,OAAS,CAAC,CACpC,CAAC,CACH,CAAC,EAED,WAAW,IAAM,CACf,GAAG,MAAMH,CAAa,CACxB,CAAC,EAED,SAAS,iBAAkB,IAAM,CAC/B,GAAG,iCAAkC,IAAM,CACzC,GAAG,cAAc,OAAO,EAAE,SAAS,gBAAgB,EAAE,OAAO,YAAY,EAAE,MAAM,EAEhF,GAAG,cAAc,OAAO,EACrB,SAAS,gBAAgB,EACzB,OAAO,EACP,OAAO,EACP,OAAO,IAAM,CACZ,GAAG,cAAc,KAAK,EAAE,KAAK,CAACI,EAAKC,IAAU,CAC3C,GAAG,KAAKD,CAAG,EAAE,OAAO,IAAM,CACxB,OAAQC,EAAO,CACb,IAAK,GACH,GAAG,cAAc,OAAQ,CAAE,KAAM,OAAQ,CAAC,EAAE,OAAO,OAAO,EAC1D,GAAG,cAAc,OAAQ,CAAE,KAAM,mBAAoB,CAAC,EAAE,OAAO,OAAO,EACtE,MACF,IAAK,GACH,GAAG,cAAc,OAAQ,CAAE,KAAM,UAAW,CAAC,EAAE,OAAO,OAAO,EAC7D,GAAG,cAAc,OAAQ,CAAE,KAAM,mBAAoB,CAAC,EAAE,OAAO,OAAO,EACtE,MACF,IAAK,GACH,GAAG,cAAc,OAAQ,CAAE,KAAM,cAAe,CAAC,EAAE,OAAO,OAAO,EACjE,GAAG,cAAc,OAAQ,CAAE,KAAM,mBAAoB,CAAC,EAAE,OAAO,OAAO,EACtE,MACF,IAAK,GACH,GAAG,cAAc,OAAQ,CAAE,KAAM,iBAAkB,CAAC,EAAE,OAAO,OAAO,EACpE,GAAG,cAAc,OAAQ,CAAE,KAAM,UAAW,CAAC,EAAE,OAAO,OAAO,EAC7D,MACF,IAAK,GACH,GAAG,cAAc,OAAQ,CAAE,KAAM,eAAgB,CAAC,EAAE,OAAO,OAAO,EAClE,GAAG,cAAc,OAAQ,CAAE,KAAM,2BAA4B,CAAC,EAAE,OAAO,OAAO,EAC9E,MACF,IAAK,GACH,GAAG,cAAc,OAAQ,CAAE,KAAM,kBAAmB,CAAC,EAAE,OAAO,OAAO,EACrE,GAAG,cAAc,UAAU,EAAE,KAAK,CAACC,EAAMC,IAAM,CAC7C,OAAQA,EAAG,CACT,IAAK,GACH,GAAG,KAAKD,CAAI,EAAE,SAAS,mBAAmB,EAC1C,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,2BAA2B,EAClD,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,yBAAyB,EAChD,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,qBAAqB,EAC5C,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,4BAA4B,EACnD,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,sBAAsB,EAC7C,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,4BAA4B,EACnD,MACF,QACE,KACJ,CACF,CAAC,EACD,MACF,QACE,KACJ,CACF,CAAC,CACH,CAAC,CACH,CAAC,CACL,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,GAAG,oFAAqF,IAAM,CAC5F,GAAG,gBAAgB,gBAAgB,EAAE,OAAO,YAAY,EACxD,GAAG,gBAAgB,cAAc,EAC9B,OAAO,YAAY,EACnB,OAAO,aAAa,EACvB,GAAG,gBAAgB,UAAU,EAAE,OAAO,YAAY,EAClD,GAAG,gBAAgB,kBAAkB,EAAE,OAAO,YAAY,EAC1D,GAAG,WAAW,SAAU,CAAE,KAAM,cAAe,CAAC,EAAE,OAAO,YAAY,EAErE,GAAG,gBAAgB,gBAAgB,EAAE,OAAO,YAAY,EAAE,MAAM,EAChE,GAAG,IAAI,EAAE,OACP,QACA,0GACF,EAEA,GAAG,SAAS,EAAE,OAAQE,GAAa,CACjC,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,yBAAyB,EAC5D,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,iCAAiC,EACpE,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,+BAA+B,EAClE,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,2BAA2B,EAC9D,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,iDAAiD,CACtF,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,sBAAuB,IAAM,CACpC,MAAMC,EAA2B,IAAM,CACrC,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAClE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAAE,OAAO,aAAa,EACxF,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAClE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAAE,OAAO,aAAa,EACxF,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAClE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EAEtE,GAAG,SAAS,EAAE,OAAQD,GAAa,CACjC,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,EACnD,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,EACnD,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,EACnD,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,EACvD,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,EACvD,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,EACnD,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,EACnD,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,CACzD,CAAC,EAED,GAAG,gBAAgB,mBAAmB,EAAE,OAAO,IAAM,CACnD,GAAG,cAAc,UAAU,EACxB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,KAAK,EACnB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,cAAc,EAAE,OAAO,cAAe,CAAC,CAC1D,CAAC,CACL,CAAC,CACL,CAAC,CACH,EAEME,EAAuB,IAAM,CACjC,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAAE,OAAO,aAAa,EACxF,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAClE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAAE,OAAO,aAAa,EACxF,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAElE,GAAG,SAAS,EAAE,OAAQF,GAAa,CACjC,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,EACvD,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,EACnD,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,EACvD,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,EACvD,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,EACnD,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,EACnD,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,EACvD,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,CACrD,CAAC,EAED,GAAG,gBAAgB,mBAAmB,EAAE,OAAO,IAAM,CACnD,GAAG,cAAc,UAAU,EACxB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,KAAK,EACnB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,cAAc,EAAE,OAAO,cAAe,CAAC,CAC1D,CAAC,CACL,CAAC,CACL,CAAC,CACH,EAEMG,EAAkB,IAAM,CAC5B,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,QAAQ,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,QAAQ,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,MAAM,EACrD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,QAAQ,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,MAAM,CACvD,EAEA,GAAG,iDAAkD,IAAM,CACzD,GAAG,cAAc,OAAO,EACrB,SAAS,cAAc,EACvB,OAAO,YAAY,EACnB,MAAM,EACTF,EAAyB,EACzB,GAAG,cAAc,OAAO,EAAE,SAAS,6BAA6B,EAChE,GAAG,gBAAgB,mBAAmB,EAAE,OAAO,IAAM,CACnD,GAAG,cAAc,UAAU,EACxB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,cAAc,EAAE,KAAK,CAACG,EAAMP,IAAU,CACrD,OAAQA,EAAO,CACb,IAAK,GACH,GAAG,KAAKO,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,QACE,KACJ,CACF,CAAC,CACH,CAAC,CACL,CAAC,CACH,CAAC,EAED,GAAG,2BAA4B,IAAM,CACnC,GAAG,cAAc,OAAO,EACrB,SAAS,cAAc,EACvB,MAAM,EAETD,EAAgB,EAEhB,GAAG,WAAW,SAAU,CAAE,KAAM,eAAgB,CAAC,EAAE,MAAM,EAEzDD,EAAqB,EAErB,GAAG,gBAAgB,mBAAmB,EAAE,OAAO,IAAM,CACnD,GAAG,cAAc,UAAU,EACxB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,cAAc,EAAE,KAAK,CAACE,EAAMP,IAAU,CACrD,OAAQA,EAAO,CACb,IAAK,GACH,GAAG,KAAKO,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,QACE,KACJ,CACF,CAAC,CACH,CAAC,CACL,CAAC,CACH,CAAC,EAED,GAAG,iDAAkD,IAAM,CACzD,GAAG,cAAc,OAAO,EACrB,SAAS,cAAc,EACvB,MAAM,EAETD,EAAgB,EAChB,GAAG,WAAW,SAAU,CAAE,KAAM,eAAgB,CAAC,EAAE,MAAM,EACzDD,EAAqB,EAErB,GAAG,cAAc,OAAO,EACrB,SAAS,cAAc,EACvB,MAAM,EAET,GAAG,WAAW,OAAQ,CAAE,KAAM,eAAgB,CAAC,EAAE,MAAM,EAEvDD,EAAyB,CAC3B,CAAC,EAED,GAAG,wCAAyC,IAAM,CAChD,GAAG,MACD,4FAA4FR,CAAO,sDACrG,EAEA,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAClE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAAE,OAAO,aAAa,EACxF,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAClE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAAE,OAAO,aAAa,EACxF,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAElE,GAAG,gBAAgB,mBAAmB,EAAE,OAAO,IAAM,CACnD,GAAG,cAAc,UAAU,EACxB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,cAAc,EAAE,KAAK,CAACW,EAAMP,IAAU,CACrD,OAAQA,EAAO,CACb,IAAK,GACH,GAAG,KAAKO,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,IAAK,GACH,GAAG,KAAKA,CAAI,EAAE,SAAS,SAAS,EAChC,MACF,QACE,KACJ,CACF,CAAC,CACH,CAAC,CACL,CAAC,CACH,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9C,GAAG,cAAc,OAAO,EACrB,SAAS,cAAc,EACvB,MAAM,EAET,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,QAAQ,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,QAAQ,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,QAAQ,EAEvD,GAAG,WAAW,SAAU,CAAE,KAAM,eAAgB,CAAC,EAAE,MAAM,EAEzD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAAE,OAAO,aAAa,EACxF,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,YAAY,EAAE,OAAO,aAAa,EACxF,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EACtE,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,gBAAgB,EAEtE,GAAG,SAAS,EAAE,OAAQJ,GAAa,CACjC,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,EACvD,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,EACnD,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,EACvD,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,EACvD,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,EACvD,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,EACnD,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,EACvD,OAAOA,EAAS,MAAM,EAAE,IAAI,GAAG,QAAQ,gBAAgB,CACzD,CAAC,EAED,GAAG,gBAAgB,mBAAmB,EAAE,OAAO,IAAM,CACnD,GAAG,cAAc,UAAU,EACxB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,KAAK,EACnB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,cAAc,EAAE,OAAO,cAAe,CAAC,CAC1D,CAAC,CACL,CAAC,CACL,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,qBAAsB,IAAM,CACnC,GAAG,+BAAgC,IAAM,CACvC,GAAG,cAAc,WAAW,EACzB,SAAS,+CAA+C,EACxD,OAAO,OAAO,EACjB,GAAG,gBAAgB,mBAAmB,EAAE,OAAO,IAAM,CACnD,GAAG,cAAc,UAAU,EACxB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,KAAK,EAAE,OAAO,cAAe,EAAE,CAClD,CAAC,CACL,CAAC,CACH,CAAC,EAED,GAAG,8BAA+B,IAAM,CACtC,GAAG,IAAI,mBAAmB,EAAE,OAAO,IAAI,EACvC,GAAG,cAAc,WAAW,EACzB,SAAS,gCAAgC,EACzC,OAAO,OAAO,EACjB,GAAG,gBAAgB,mBAAmB,EAAE,OAAO,IAAM,CACnD,GAAG,cAAc,UAAU,EACxB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,KAAK,EAAE,OAAO,cAAe,EAAE,CAClD,CAAC,CACL,CAAC,CACH,CAAC,EAED,GAAG,0CAA2C,IAAM,CAClD,GAAG,MACD,4FAA4FP,CAAO,sBACrG,EACA,GAAG,cAAc,WAAW,EACzB,SAAS,mBAAmB,EAC5B,OAAO,OAAO,EACjB,GAAG,gBAAgB,mBAAmB,EAAE,OAAO,IAAM,CACnD,GAAG,cAAc,UAAU,EACxB,GAAG,CAAC,EACJ,OAAO,IAAM,CACZ,GAAG,cAAc,KAAK,EAAE,OAAO,cAAe,GAAG,CACnD,CAAC,CACL,CAAC,CACH,CAAC,EAED,GAAG,yBAA0B,IAAM,CACjC,GAAG,gBAAgB,QAAQ,EAAE,MAAM,EACnC,GAAG,SAAS,EAAE,OAAQO,GAAa,CACjC,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,gBAAgB,CACrD,CAAC,CACH,CAAC,EAED,GAAG,qCAAsC,IAAM,CAC7C,GAAG,MACD,4FAA4FP,CAAO,wBACrG,EACA,GAAG,WAAW,OAAQ,CAAE,QAAS,MAAO,CAAC,EAAE,SAAS,GAAG,CACzD,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,qBAAsB,IAAM,CACnC,MAAMY,EAAe,IAAM,CACzB,GAAG,WAAW,SAAU,CAAE,KAAM,eAAgB,CAAC,EAAE,MAAM,CAC3D,EAEMC,EAAc,IAAM,CACxB,GAAG,cAAc,OAAO,EACrB,SAAS,cAAc,EACvB,MAAM,CACX,EAEA,OAAO,IAAM,CACX,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,iBAAiB,EACzB,GAAG,KAAK,2BAA2B,EACnC,GAAG,KAAK,yCAAyC,EACjD,GAAG,KAAK,sBAAsB,EAC9B,GAAG,KAAK,0CAA0C,EAClD,GAAG,KAAK,+BAA+B,EACvC,GAAG,KAAK,4BAA4B,EACpC,GAAG,KAAK,6BAA6B,CACvC,CAAC,EAED,SAAS,gBAAiB,IAAM,CAC9B,OAAO,IAAM,IACX,iBAAc,CAAE,KAAM,qBAAsB,YAAa,gCAAiC,KAAAf,CAAK,CAAC,EAChG,GAAG,IAAI,EAAE,KAAMG,GAAQ,CACrBF,EAAgBE,CAClB,CAAC,CACH,CAAC,EAED,WAAW,IAAM,CACf,GAAG,MAAMF,CAAa,CACxB,CAAC,EAED,MAAMe,EAAmB,IAAM,CAC7B,QAASV,EAAQ,EAAGA,EAAQ,EAAGA,GAAS,EACtC,GAAG,gBAAgB,kBAAkB,EAAE,OAAO,IAAM,CAClD,GAAG,cAAc,MAAM,EAAE,MAAM,EAAE,MAAM,CACzC,CAAC,CAEL,EAEA,SAAS,aAAc,IAAM,CAC3B,GAAG,8BAA+B,IAAM,CACtC,GAAG,WAAW,UAAW,CAAE,KAAM,MAAO,CAAC,EAAE,OAAO,aAAc,YAAY,EAC5E,GAAG,WAAW,UAAW,CAAE,KAAM,IAAK,CAAC,EAAE,OAAO,aAAc,YAAY,EAE1EU,EAAiB,EACjBD,EAAY,EAEZ,GAAG,WAAW,UAAW,CAAE,KAAM,MAAO,CAAC,EAAE,KAAK,YAAY,EAC5D,GAAG,WAAW,UAAW,CAAE,KAAM,IAAK,CAAC,EAAE,KAAK,YAAY,EAAE,KAAK,EAEjED,EAAa,EAEb,GAAG,SAAS,EAAE,OAAQL,GAAa,CACjC,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,iCAAiC,EACpE,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,+BAA+B,CACpE,CAAC,KAED,6BAA0B,CAAE,OAAQ,EAAG,aAAc,CAAC,CAAE,IAAK,UAAW,MAAO,yBAA0B,CAAC,CAAE,CAAC,CAC/G,CAAC,EAED,GAAG,sCAAuC,IAAM,CAC9CO,EAAiB,EACjBD,EAAY,EAEZ,GAAG,WAAW,MAAO,CAAE,KAAM,oBAAqB,CAAC,EAAE,MAAM,EAC3D,GAAG,WAAW,QAAS,CAAE,KAAM,UAAW,CAAC,EAAE,MAAM,EAEnDD,EAAa,EAEb,IAAIG,EACAC,EACJ,GAAG,WAAW,UAAW,CAAE,KAAM,MAAO,CAAC,EACtC,OAAO,KAAK,EACZ,OAAO,cAAc,EACrB,KAAMC,GAAgB,CACrBF,EAAaE,CACf,CAAC,EACH,GAAG,WAAW,UAAW,CAAE,KAAM,IAAK,CAAC,EACpC,OAAO,KAAK,EACZ,OAAO,cAAc,EACrB,KAAMA,GAAgB,CACrBD,EAAWC,CACb,CAAC,EAEH,MAAMC,EAAa,IAAI,EAAAC,QACvB,GAAG,SAAS,EAAE,OAAQZ,GAAa,CACjC,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,wBAAwBW,EAAW,aAAaH,EAAY,KAAK,CAAC,EAAE,EACvG,OAAOR,EAAS,MAAM,EAAE,GAAG,QAAQ,sBAAsBW,EAAW,aAAaF,EAAU,KAAK,CAAC,EAAE,EACnG,OAAOT,EAAS,MAAM,EAAE,GAAG,QAAQ,2CAA2C,CAChF,CAAC,KAED,6BAA0B,CAAE,OAAQ,EAAG,aAAc,CAAC,CAAE,IAAK,UAAW,MAAO,UAAW,CAAC,CAAE,CAAC,CAChG,CAAC,CACH,CAAC,EAED,SAAS,cAAe,IAAM,CAC5B,GAAG,sCAAuC,IAAM,CAC9C,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,YAAY,EACpE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,YAAY,EAEpEO,EAAiB,EAEjB,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EAExED,EAAY,EAEZ,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,MAAM,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,MAAM,EAEvDD,EAAa,EAEb,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,YAAY,EACpE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,YAAY,EACpE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,KAExE,6BAA0B,CAAE,OAAQ,EAAG,aAAc,CAAC,CAAE,IAAK,UAAW,MAAO,sBAAuB,CAAC,CAAE,CAAC,CAC5G,CAAC,EAED,GAAG,kDAAmD,IAAM,CAC1D,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,YAAY,EACpE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,YAAY,EAEpEE,EAAiB,EAEjB,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EAExED,EAAY,EAEZ,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,MAAM,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,MAAM,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,MAAM,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,MAAM,EAEvDD,EAAa,EAEb,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,YAAY,EACpE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,YAAY,EACpE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,YAAY,EACpE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,YAAY,KAEpE,6BAA0B,CACxB,OAAQ,EACR,aAAc,CAAC,CAAE,IAAK,UAAW,MAAO,0CAA2C,CAAC,CACtF,CAAC,CACH,CAAC,EAED,GAAG,kEAAmE,IAAM,CAC1EE,EAAiB,EAEjB,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EAExED,EAAY,EAEZ,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,MAAM,EAEvDD,EAAa,EAEb,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,YAAY,EACpE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,EACxE,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,OAAO,gBAAgB,KAExE,6BAA0B,CACxB,OAAQ,EACR,aAAc,CAAC,CAAE,IAAK,UAAW,MAAO,WAAY,CAAC,CACvD,CAAC,CACH,CAAC,CACH,CAAC,EAED,GAAG,0DAA2D,IAAM,CAClE,GAAG,cAAc,OAAO,EACrB,SAAS,cAAc,EACvB,OAAO,YAAY,EACnB,MAAM,EAET,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,QAAQ,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,QAAQ,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,MAAM,EACrD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,QAAQ,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,MAAM,EAErD,GAAG,WAAW,SAAU,CAAE,KAAM,eAAgB,CAAC,EAAE,MAAM,EACzD,GAAG,cAAc,OAAO,EAAE,SAAS,6BAA6B,EAEhEC,EAAY,EACZ,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,MAAM,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,MAAM,EACvDD,EAAa,EAEb,GAAG,cAAc,OAAO,EAAE,SAAS,6BAA6B,CAClE,CAAC,CACH,CAAC,EAED,SAAS,oCAAqC,IAAM,CAClD,MAAMQ,EAAqB,IAClB,GAAG,WAAW,SAAU,CAAE,KAAM,wCAAyC,CAAC,EAE7EC,EAAuB,IACpB,GAAG,WAAW,SAAU,CAAE,KAAM,iBAAkB,CAAC,EAEtDC,EAAuB,IACpB,GAAG,WAAW,SAAU,CAAE,KAAM,iBAAkB,CAAC,EAGtDC,EAAoC,CAAC,CACzC,KAAAC,EACA,QAAAC,EACA,OAAAC,EACA,gBAAAC,CACF,IAKM,CACJ,GAAG,gBAAgB,WAAW,EAAE,OAAO,IAAM,CAC3C,GAAG,WAAW,MAAO,CACnB,KAAM,CAACC,EAAGC,IACDA,EAAQ,YAAY,SAASL,CAAI,GAAKK,EAAQ,YAAY,SAASJ,CAAO,CAErF,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,cAAc,UAAU,EACxB,OAAO,cAAeC,CAAM,EAC5B,KAAK,CAACI,EAAI1B,IAAU,CACnB,GAAIuB,EAAgBvB,CAAK,EAAG,CAC1B,KAAM,CAAE,IAAA2B,EAAK,MAAAC,CAAM,EAAIL,EAAgBvB,CAAK,EAC5C,GAAG,KAAK0B,CAAE,EAAE,SAASC,CAAG,EACxB,GAAG,KAAKD,CAAE,EAAE,SAASE,CAAK,CAC5B,CACF,CAAC,CACL,CAAC,CACH,CAAC,CACH,EAEA,GAAG,gDAAiD,IAAM,IAExD,iBAAc,CAAE,KAAM,qBAAsB,YAAa,gCAAiC,KAAAlC,CAAK,CAAC,KAGhG,6BAA0B,CACxB,OAAQ,EACR,aAAc,CACZ,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,sBAAuB,CAClD,CACF,CAAC,EAGDe,EAAY,EACZ,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,MAAM,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,MAAM,EACvD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,UAAU,EAChED,EAAa,EAEb,MAAMqB,EAA8B,CAClC,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,0CAA2C,CACtE,KACA,6BAA0B,CACxB,OAAQ,EACR,aAAcA,CAChB,CAAC,EAGDb,EAAmB,EAAE,MAAM,EAG3BC,EAAqB,EAAE,OAAO,OAAO,EACrCC,EAAqB,EAAE,OAAO,OAAO,KAGrC,6BAA0B,CACxB,OAAQ,EACR,aAAcW,CAChB,CAAC,CACH,CAAC,EAED,GAAG,yDAA0D,IAAM,IAEjE,iBAAc,CAAE,KAAM,qBAAsB,YAAa,gCAAiC,KAAAnC,CAAK,CAAC,EAChG,GAAG,IAAI,EAAE,KAAMG,GAAQ,CACrBF,EAAgBE,CAClB,CAAC,EAGDoB,EAAqB,EAAE,OAAO,OAAO,EACrCC,EAAqB,EAAE,OAAO,OAAO,EAErC,MAAMW,EAA8B,CAClC,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,0CAA2C,CACtE,KACA,6BAA0B,CACxB,OAAQ,EACR,aAAcA,CAChB,CAAC,EAED,GAAG,MAAMnC,CAAI,EACb,GAAG,WAAW,MAAO,CAAE,KAAM,QAAS,CAAC,EAAE,MAAM,EAC/CyB,EAAkC,CAChC,KAAM,qBACN,QAAS,qBACT,OAAQ,EACR,gBAAiBU,CACnB,CAAC,CACH,CAAC,EAED,GAAG,uDAAwD,IAAM,CAC/D,GAAG,MAAMlC,CAAa,EAGtBsB,EAAqB,EAAE,OAAO,OAAO,EACrCC,EAAqB,EAAE,OAAO,OAAO,EAErC,MAAMY,EAA8B,CAClC,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,0CAA2C,CACtE,KACA,6BAA0B,CACxB,OAAQ,EACR,aAAcA,CAChB,CAAC,EAGDrB,EAAY,EACZ,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,QAAQ,EACzD,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,QAAQ,EACzD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,UAAU,EAChED,EAAa,KAEb,6BAA0B,CACxB,OAAQ,EACR,aAAc,CACZ,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,WAAY,CACvC,CACF,CAAC,EAED,GAAG,MAAMd,CAAI,EACb,GAAG,WAAW,MAAO,CAAE,KAAM,QAAS,CAAC,EAAE,MAAM,EAC/CyB,EAAkC,CAChC,KAAM,qBACN,QAAS,qBACT,OAAQ,EACR,gBAAiB,CACf,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,WAAY,CACvC,CACF,CAAC,EAED,GAAG,MAAMxB,CAAa,EAEtB,GAAG,WAAW,OAAQ,CAAE,KAAM,eAAgB,CAAC,EAAE,MAAM,KAEvD,6BAA0B,CACxB,OAAQ,EACR,aAAcmC,CAChB,CAAC,EAED,GAAG,MAAMpC,CAAI,EACb,GAAG,WAAW,MAAO,CAAE,KAAM,QAAS,CAAC,EAAE,MAAM,EAC/CyB,EAAkC,CAChC,KAAM,qBACN,QAAS,qBACT,OAAQ,EACR,gBAAiBW,CACnB,CAAC,CACH,CAAC,EAED,GAAG,4FAA6F,IAAM,CACpG,GAAG,MAAMnC,CAAa,EAGtBsB,EAAqB,EAAE,OAAO,OAAO,EACrCC,EAAqB,EAAE,OAAO,OAAO,KAErC,6BAA0B,CACxB,OAAQ,EACR,aAAc,CACZ,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,0CAA2C,CACtE,CACF,CAAC,EAGDT,EAAY,EACZ,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,QAAQ,EACzD,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,QAAQ,EACzD,GAAG,WAAW,WAAY,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,UAAU,EAChED,EAAa,EAEb,MAAMuB,EAAyB,CAC7B,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,sBAAuB,CAClD,KAEA,6BAA0B,CACxB,OAAQ,EACR,aAAcA,CAChB,CAAC,EAEDd,EAAqB,EAAE,MAAM,KAE7B,6BAA0B,CACxB,OAAQ,EACR,aAAcc,CAChB,CAAC,KAED,iBAAc,CAAE,KAAM,qBAAsB,YAAa,gCAAiC,KAAArC,CAAK,CAAC,EAChG,GAAG,IAAI,EAAE,KAAMG,GAAQ,CACrBF,EAAgBE,CAClB,CAAC,KAGD,6BAA0B,CACxB,OAAQ,EACR,aAAckC,CAChB,CAAC,EAGDd,EAAqB,EAAE,OAAO,OAAO,EACrCC,EAAqB,EAAE,OAAO,OAAO,EAErC,GAAG,MAAMxB,CAAI,EACb,GAAG,WAAW,MAAO,CAAE,KAAM,QAAS,CAAC,EAAE,MAAM,EAC/CyB,EAAkC,CAChC,KAAM,qBACN,QAAS,qBACT,OAAQ,EACR,gBAAiBY,CACnB,CAAC,CACH,CAAC,EAED,GAAG,mCAAoC,IAAM,CAC3C,GAAG,MAAMpC,CAAa,KAEtB,6BAA0B,CACxB,OAAQ,EACR,aAAc,CACZ,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,sBAAuB,CAClD,CACF,CAAC,EAEDuB,EAAqB,EAAE,MAAM,KAG7B,6BAA0B,CACxB,OAAQ,EACR,aAAc,CACZ,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,sBAAuB,CAClD,CACF,CAAC,EAED,GAAG,MAAMxB,CAAI,EACb,GAAG,WAAW,MAAO,CAAE,KAAM,QAAS,CAAC,EAAE,MAAM,EAC/CyB,EAAkC,CAChC,KAAM,qBACN,QAAS,qBACT,OAAQ,EACR,gBAAiB,CACf,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,sBAAuB,CAClD,CACF,CAAC,CACH,CAAC,EAED,SAAS,cAAe,IAAM,CAC5B,SAAS,sBAAuB,IAAM,CACpC,GAAG,qCAAsC,IAAM,IAE7C,iBAAc,CAAE,KAAM,qBAAsB,YAAa,gCAAiC,KAAAzB,CAAK,CAAC,KAEhG,6BAA0B,CACxB,OAAQ,EACR,aAAc,CACZ,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,sBAAuB,CAClD,CACF,CAAC,EAGDe,EAAY,EACZ,GAAG,WAAW,MAAO,CAAE,KAAM,oBAAqB,CAAC,EAAE,MAAM,EAC3D,GAAG,WAAW,QAAS,CAAE,KAAM,UAAW,CAAC,EAAE,MAAM,EACnDD,EAAa,EAEb,MAAMwB,EAA0B,CAC9B,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,UAAW,EACpC,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,sBAAuB,CAClD,KAEA,6BAA0B,CACxB,OAAQ,EACR,aAAcA,CAChB,CAAC,EAGDhB,EAAmB,EAAE,MAAM,EAG3BC,EAAqB,EAAE,OAAO,OAAO,EACrCC,EAAqB,EAAE,OAAO,OAAO,KAGrC,6BAA0B,CACxB,OAAQ,EACR,aAAcc,CAChB,CAAC,KAGD,iBAAc,CAAE,KAAM,qBAAsB,YAAa,gCAAiC,KAAAtC,CAAK,CAAC,KAGhG,6BAA0B,CACxB,OAAQ,EACR,aAAcsC,CAChB,CAAC,EAEDd,EAAqB,EAAE,MAAM,CAC/B,CAAC,CACH,CAAC,EAED,SAAS,cAAe,IAAM,CAC5B,GAAG,yCAA0C,IAAM,IAEjD,iBAAc,CAAE,KAAM,qBAAsB,YAAa,gCAAiC,KAAAxB,CAAK,CAAC,KAEhG,6BAA0B,CACxB,OAAQ,EACR,aAAc,CACZ,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,sBAAuB,CAClD,CACF,CAAC,EAGDe,EAAY,EACZ,GAAG,WAAW,WAAY,CAAE,KAAM,WAAY,CAAC,EAAE,QAAQ,EACzDD,EAAa,EAEb,MAAMwB,EAA0B,CAC9B,CAAE,IAAK,UAAW,MAAO,WAAY,EACrC,CAAE,IAAK,UAAW,MAAO,yBAA0B,EACnD,CAAE,IAAK,UAAW,MAAO,YAAa,EACtC,CAAE,IAAK,UAAW,MAAO,WAAY,CACvC,KAEA,6BAA0B,CACxB,OAAQ,EACR,aAAcA,CAChB,CAAC,EAGDhB,EAAmB,EAAE,MAAM,EAG3BC,EAAqB,EAAE,OAAO,OAAO,EACrCC,EAAqB,EAAE,OAAO,OAAO,KAGrC,6BAA0B,CACxB,OAAQ,EACR,aAAcc,CAChB,CAAC,KAGD,iBAAc,CAAE,KAAM,qBAAsB,YAAa,gCAAiC,KAAAtC,CAAK,CAAC,KAGhG,6BAA0B,CACxB,OAAQ,EACR,aAAcsC,CAChB,CAAC,EAEDd,EAAqB,EAAE,MAAM,CAC/B,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,EAED,SAAS,UAAW,IAAM,CACxB,OAAO,IAAM,IACX,iBAAc,CAAE,KAAM,qBAAsB,YAAa,gCAAiC,KAAAxB,CAAK,CAAC,EAChG,GAAG,IAAI,EAAE,KAAMG,GAAQ,CACrBF,EAAgBE,CAClB,CAAC,CACH,CAAC,EAED,WAAW,IAAM,CACf,GAAG,MAAMF,CAAa,CACxB,CAAC,EAED,GAAG,kEAAmE,IAAM,CAC1E,GAAG,WAAW,OAAQ,CAAE,KAAM,eAAgB,CAAC,EAAE,MAAM,EAGvD,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,aAAc,yCAAyC,EACzG,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,aAAc,oCAAoC,EAGpG,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,MAAM,EACjD,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,aAAc,0CAA0C,EAC1G,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,aAAc,oCAAoC,EACpG,GAAG,SAAS,EAAE,OAAQQ,GAAa,CACjC,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,oCAAoC,EACvE,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,iDAAiD,CACtF,CAAC,EAGD,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,MAAM,EACjD,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,aAAc,yCAAyC,EACzG,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,aAAc,oCAAoC,EACpG,GAAG,SAAS,EAAE,OAAQA,GAAa,CACjC,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,mCAAmC,EACtE,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,iDAAiD,CACtF,CAAC,EAGD,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,MAAM,EACjD,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,aAAc,yCAAyC,EACzG,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,aAAc,oCAAoC,EACpG,GAAG,SAAS,EAAE,OAAQA,GAAa,CACjC,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,mCAAmC,EACtE,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,iDAAiD,CACtF,CAAC,EAGD,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,MAAM,EACjD,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,aAAc,0CAA0C,EAC1G,GAAG,WAAW,OAAQ,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,aAAc,oCAAoC,EACpG,GAAG,SAAS,EAAE,OAAQA,GAAa,CACjC,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,oCAAoC,EACvE,OAAOA,EAAS,MAAM,EAAE,GAAG,QAAQ,iDAAiD,CACtF,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC",
|
|
4
|
+
"sourcesContent": ["import {\n checkSelectedFilterValues,\n requestReport,\n executeReportStubs,\n} from '../../../../../../../cypress-tests/cypressUtils'\nimport DateMapper from '../../../../../utils/DateMapper/DateMapper'\n\ncontext('Viewing a report', () => {\n const path = '/embedded/platform/'\n let viewReportUrl: string\n let tableId: string\n\n describe('List report page', () => {\n before(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult10')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubRequestSuccessResult100')\n\n // Request and run a report so we can go back to it for each test\n requestReport({ name: 'Successful Report', description: 'this will succeed', path })\n cy.url().then((url) => {\n viewReportUrl = url\n const urlArr = url.split('/')\n tableId = urlArr[urlArr.length - 2]\n })\n })\n\n beforeEach(() => {\n cy.visit(viewReportUrl)\n })\n\n describe('Report details', () => {\n it('should show the report details', () => {\n cy.findAllByRole('group').contains('Report details').should('be.visible').click()\n\n cy.findAllByRole('group')\n .contains('Report details')\n .parent()\n .parent()\n .within(() => {\n cy.findAllByRole('row').each((row, index) => {\n cy.wrap(row).within(() => {\n switch (index) {\n case 0:\n cy.findAllByRole('cell', { name: 'Name:' }).should('exist')\n cy.findAllByRole('cell', { name: 'Successful Report' }).should('exist')\n break\n case 1:\n cy.findAllByRole('cell', { name: 'Product:' }).should('exist')\n cy.findAllByRole('cell', { name: 'Successful Report' }).should('exist')\n break\n case 2:\n cy.findAllByRole('cell', { name: 'Description:' }).should('exist')\n cy.findAllByRole('cell', { name: 'this will succeed' }).should('exist')\n break\n case 3:\n cy.findAllByRole('cell', { name: 'Classification:' }).should('exist')\n cy.findAllByRole('cell', { name: 'OFFICIAL' }).should('exist')\n break\n case 4:\n cy.findAllByRole('cell', { name: 'Requested at:' }).should('exist')\n cy.findAllByRole('cell', { name: /\\d{1,2}\\/\\d{1,2}\\/\\d{2,4}/ }).should('exist')\n break\n case 5:\n cy.findAllByRole('cell', { name: 'Applied Filters:' }).should('exist')\n cy.findAllByRole('listitem').each((item, i) => {\n switch (i) {\n case 0:\n cy.wrap(item).contains('Field 1: value1.2')\n break\n case 1:\n cy.wrap(item).contains('Field 3 start: 01/02/2003')\n break\n case 2:\n cy.wrap(item).contains('Field 3 end: 04/05/2006')\n break\n case 3:\n cy.wrap(item).contains('Field 7: 01/02/2005')\n break\n case 4:\n cy.wrap(item).contains('Field 8: value8.2,value8.3')\n break\n case 5:\n cy.wrap(item).contains('Sort column: Field 1')\n break\n case 6:\n cy.wrap(item).contains('Sort direction: Descending')\n break\n default:\n break\n }\n })\n break\n default:\n break\n }\n })\n })\n })\n })\n })\n\n describe('Actions', () => {\n it('should show the actions and go to the filters page when refresh action is clicked', () => {\n cy.findByLabelText('Refresh report').should('be.visible')\n cy.findByLabelText(/Print screen/)\n .should('be.visible')\n .should('be.disabled')\n cy.findByLabelText(/download/).should('be.visible')\n cy.findByLabelText(/Copy report link/).should('be.visible')\n cy.findByRole('button', { name: /Add bookmark/ }).should('be.visible')\n\n cy.findByLabelText('Refresh report').should('be.visible').click()\n cy.url().should(\n 'match',\n /.*\\/embedded\\/platform\\/dpr\\/request-report\\/report\\/request-examples\\/request-example-success\\/filters/i,\n )\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2006-05-04`)\n expect(location.search).to.contain(`filters.field7=2005-02-01`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n })\n })\n\n describe('Column interactions', () => {\n const expectInitialisedColumns = () => {\n cy.findByRole('checkbox', { name: 'Field 1' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 2' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 3' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 4' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 5' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 6' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 7' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 8' }).should('not.be.checked')\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`columns=field1`)\n expect(location.search).to.contain(`columns=field2`)\n expect(location.search).to.contain(`columns=field3`)\n expect(location.search).not.to.contain(`columns=field4`)\n expect(location.search).not.to.contain(`columns=field5`)\n expect(location.search).to.contain(`columns=field6`)\n expect(location.search).to.contain(`columns=field7`)\n expect(location.search).not.to.contain(`columns=field8`)\n })\n\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('row')\n .eq(1)\n .within(() => {\n cy.findAllByRole('columnheader').should('have.length', 5)\n })\n })\n })\n }\n\n const expectUpdatedColumns = () => {\n cy.findByRole('checkbox', { name: 'Field 1' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 2' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 4' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 5' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 6' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 7' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 8' }).should('be.checked')\n\n cy.location().should((location) => {\n expect(location.search).not.to.contain(`columns=field1`)\n expect(location.search).to.contain(`columns=field2`)\n expect(location.search).not.to.contain(`columns=field3`)\n expect(location.search).not.to.contain(`columns=field4`)\n expect(location.search).to.contain(`columns=field5`)\n expect(location.search).to.contain(`columns=field6`)\n expect(location.search).not.to.contain(`columns=field7`)\n expect(location.search).to.contain(`columns=field8`)\n })\n\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('row')\n .eq(1)\n .within(() => {\n cy.findAllByRole('columnheader').should('have.length', 4)\n })\n })\n })\n }\n\n const setColumnValues = () => {\n cy.findByRole('checkbox', { name: 'Field 1' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 3' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 5' }).check()\n cy.findByRole('checkbox', { name: 'Field 7' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 8' }).check()\n }\n\n it('should initialise the column content correctly', () => {\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .should('be.visible')\n .click()\n expectInitialisedColumns()\n cy.findAllByRole('group').contains('Show columns (5 of 8 shown)')\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('columnheader').each((head, index) => {\n switch (index) {\n case 0:\n cy.wrap(head).contains('Field 1')\n break\n case 1:\n cy.wrap(head).contains('Field 2')\n break\n case 2:\n cy.wrap(head).contains('Field 3')\n break\n case 3:\n cy.wrap(head).contains('Field 6')\n break\n case 4:\n cy.wrap(head).contains('Field 7')\n break\n default:\n break\n }\n })\n })\n })\n })\n\n it('should apply the columns', () => {\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .click()\n\n setColumnValues()\n\n cy.findByRole('button', { name: 'Apply columns' }).click()\n\n expectUpdatedColumns()\n\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('columnheader').each((head, index) => {\n switch (index) {\n case 0:\n cy.wrap(head).contains('Field 2')\n break\n case 1:\n cy.wrap(head).contains('Field 5')\n break\n case 2:\n cy.wrap(head).contains('Field 6')\n break\n case 3:\n cy.wrap(head).contains('Field 8')\n break\n default:\n break\n }\n })\n })\n })\n })\n\n it('should reset the columns to their DPD defaults', () => {\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .click()\n\n setColumnValues()\n cy.findByRole('button', { name: 'Apply columns' }).click()\n expectUpdatedColumns()\n\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .click()\n\n cy.findByRole('link', { name: 'Reset columns' }).click()\n\n expectInitialisedColumns()\n })\n\n it('should apply the columns from the URL', () => {\n cy.visit(\n `/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${tableId}/report?columns=field1&columns=field5&columns=field8`,\n )\n\n cy.findByRole('checkbox', { name: 'Field 1' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 2' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 4' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 5' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Field 6' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 7' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 8' }).should('be.checked')\n\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('columnheader').each((head, index) => {\n switch (index) {\n case 0:\n cy.wrap(head).contains('Field 1')\n break\n case 1:\n cy.wrap(head).contains('Field 2')\n break\n case 2:\n cy.wrap(head).contains('Field 5')\n break\n case 3:\n cy.wrap(head).contains('Field 6')\n break\n case 4:\n cy.wrap(head).contains('Field 8')\n break\n default:\n break\n }\n })\n })\n })\n })\n\n it('should only apply mandatory columms', () => {\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .click()\n\n cy.findByRole('checkbox', { name: 'Field 1' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 3' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 7' }).uncheck()\n\n cy.findByRole('button', { name: 'Apply columns' }).click()\n\n cy.findByRole('checkbox', { name: 'Field 1' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 2' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 4' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 5' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 6' }).should('be.checked').should('be.disabled')\n cy.findByRole('checkbox', { name: 'Field 7' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Field 8' }).should('not.be.checked')\n\n cy.location().should((location) => {\n expect(location.search).not.to.contain(`columns=field1`)\n expect(location.search).to.contain(`columns=field2`)\n expect(location.search).not.to.contain(`columns=field3`)\n expect(location.search).not.to.contain(`columns=field4`)\n expect(location.search).not.to.contain(`columns=field5`)\n expect(location.search).to.contain(`columns=field6`)\n expect(location.search).not.to.contain(`columns=field7`)\n expect(location.search).not.to.contain(`columns=field8`)\n })\n\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(0)\n .within(() => {\n cy.findAllByRole('row')\n .eq(1)\n .within(() => {\n cy.findAllByRole('columnheader').should('have.length', 2)\n })\n })\n })\n })\n })\n\n describe('Paging interaction', () => {\n it('should show the table totals', () => {\n cy.findAllByRole('paragraph')\n .contains(/Showing \\d{1,4} to \\d{1,4} of \\d{1,4} results/)\n .should('exist')\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 20)\n })\n })\n })\n\n it('should change the page size', () => {\n cy.get('#page-size-select').select('10')\n cy.findAllByRole('paragraph')\n .contains(/Showing 1 to 10 of 100 results/)\n .should('exist')\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 10)\n })\n })\n })\n\n it('should change the page size via the URL', () => {\n cy.visit(\n `/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${tableId}/report?pageSize=100`,\n )\n cy.findAllByRole('paragraph')\n .contains(/100 total results/)\n .should('exist')\n cy.findByLabelText(/Successful Report/).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 100)\n })\n })\n })\n\n it('should change the page', () => {\n cy.findByLabelText('Page 5').click()\n cy.location().should((location) => {\n expect(location.search).to.contain(`selectedPage=5`)\n })\n })\n\n it('should change the page via the URL', () => {\n cy.visit(\n `/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${tableId}/report?selectedPage=3`,\n )\n cy.findByRole('link', { current: 'page' }).contains('3')\n })\n })\n })\n\n describe('Interactive report', () => {\n const applyFilters = () => {\n cy.findByRole('button', { name: 'Apply filters' }).click()\n }\n\n const showFilters = () => {\n cy.findAllByRole('group')\n .contains(/Show filters/)\n .click()\n }\n\n before(() => {\n executeReportStubs()\n cy.task('stubDefinitionFeatureTestingInteractive')\n cy.task('stubAsyncRequestSuccessReportTablesCount')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubRequestSuccessResult100')\n })\n\n describe('Apply filters', () => {\n before(() => {\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n cy.url().then((url) => {\n viewReportUrl = url\n })\n })\n\n beforeEach(() => {\n cy.visit(viewReportUrl)\n })\n\n const removeAllFilters = () => {\n for (let index = 0; index < 4; index += 1) {\n cy.findByLabelText('Selected filters').within(() => {\n cy.findAllByRole('link').first().click()\n })\n }\n }\n\n describe('Date range', () => {\n it('should apply the date range', () => {\n cy.findByRole('textbox', { name: 'From' }).should('have.value', '01/02/2003')\n cy.findByRole('textbox', { name: 'To' }).should('have.value', '04/05/2006')\n\n removeAllFilters()\n showFilters()\n\n cy.findByRole('textbox', { name: 'From' }).type('02/05/2025')\n cy.findByRole('textbox', { name: 'To' }).type('05/07/2025').blur()\n\n applyFilters()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field3.start=2025-05-02`)\n expect(location.search).to.contain(`filters.field3.end=2025-07-05`)\n })\n\n checkSelectedFilterValues({ length: 2, buttonValues: [{ key: 'Field 3', value: '02/05/2025 - 05/07/2025' }] })\n })\n\n it('should apply the relative daterange', () => {\n removeAllFilters()\n showFilters()\n\n cy.findByRole('tab', { name: 'Preset date ranges' }).click()\n cy.findByRole('radio', { name: 'Tomorrow' }).check()\n\n applyFilters()\n\n let startValue: string\n let endValue: string\n cy.findByRole('textbox', { name: 'From' })\n .invoke('val')\n .should('not.be.empty')\n .then((val: string) => {\n startValue = val\n })\n cy.findByRole('textbox', { name: 'To' })\n .invoke('val')\n .should('not.be.empty')\n .then((val: string) => {\n endValue = val\n })\n\n const dateMapper = new DateMapper()\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field3.start=${dateMapper.toDateString(startValue, 'iso')}`)\n expect(location.search).to.contain(`filters.field3.end=${dateMapper.toDateString(endValue, 'iso')}`)\n expect(location.search).to.contain(`filters.field3.relative-duration=tomorrow`)\n })\n\n checkSelectedFilterValues({ length: 2, buttonValues: [{ key: 'Field 3', value: 'Tomorrow' }] })\n })\n })\n\n describe('Multiselect', () => {\n it('should apply the multiselect values', () => {\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('be.checked')\n\n removeAllFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('not.be.checked')\n\n showFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).check()\n\n applyFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('not.be.checked')\n\n checkSelectedFilterValues({ length: 2, buttonValues: [{ key: 'Field 8', value: 'Value 8.1, Value 8.3' }] })\n })\n\n it('should set the selected filter values correctly', () => {\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('be.checked')\n\n removeAllFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('not.be.checked')\n\n showFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.2' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.4' }).check()\n\n applyFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('be.checked')\n\n checkSelectedFilterValues({\n length: 2,\n buttonValues: [{ key: 'Field 8', value: 'Value 8.1, Value 8.2, Value 8.3 + 1 more' }],\n })\n })\n\n it('should set the values correctly when only one checkbox selected', () => {\n removeAllFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('not.be.checked')\n\n showFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n\n applyFilters()\n\n cy.findByRole('checkbox', { name: 'Value 8.1' }).should('be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.2' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.3' }).should('not.be.checked')\n cy.findByRole('checkbox', { name: 'Value 8.4' }).should('not.be.checked')\n\n checkSelectedFilterValues({\n length: 2,\n buttonValues: [{ key: 'Field 8', value: 'Value 8.1' }],\n })\n })\n })\n\n it('Applying filters should persist current applied columns', () => {\n cy.findAllByRole('group')\n .contains(/Show columns/)\n .should('be.visible')\n .click()\n\n cy.findByRole('checkbox', { name: 'Field 1' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 3' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 5' }).check()\n cy.findByRole('checkbox', { name: 'Field 7' }).uncheck()\n cy.findByRole('checkbox', { name: 'Field 8' }).check()\n\n cy.findByRole('button', { name: 'Apply columns' }).click()\n cy.findAllByRole('group').contains('Show columns (4 of 8 shown)')\n\n showFilters()\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).check()\n applyFilters()\n\n cy.findAllByRole('group').contains('Show columns (4 of 8 shown)')\n })\n })\n\n describe('User defined interactive defaults', () => {\n const saveDefaultsButton = () => {\n return cy.findByRole('button', { name: 'Save current filter values as defaults' })\n }\n const updateDefaultsButton = () => {\n return cy.findByRole('button', { name: 'Update defaults' })\n }\n const deleteDefaultsButton = () => {\n return cy.findByRole('button', { name: 'Delete defaults' })\n }\n\n const checkSelectedFiltersInUserReports = ({\n name,\n product,\n length,\n selectedFilters,\n }: {\n name: string\n product: string\n length: number\n selectedFilters: { key: string; value: string }[]\n }) => {\n cy.findByLabelText(/Viewed \\(/).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes(name) && element.textContent.includes(product)\n },\n }).within(() => {\n cy.findAllByRole('listitem')\n .should('have.length', length)\n .each((li, index) => {\n if (selectedFilters[index]) {\n const { key, value } = selectedFilters[index]\n cy.wrap(li).contains(key)\n cy.wrap(li).contains(value)\n }\n })\n })\n })\n }\n\n it('should save the interactive filters correctly', () => {\n // request the report\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n\n // check the default filters\n checkSelectedFilterValues({\n length: 5,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ],\n })\n\n // update the filters\n showFilters()\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.4' }).check()\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.2')\n applyFilters()\n\n const selectedFiltersButtonValues = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.1, Value 8.2, Value 8.3 + 1 more' },\n ]\n checkSelectedFilterValues({\n length: 6,\n buttonValues: selectedFiltersButtonValues,\n })\n\n // save the filters\n saveDefaultsButton().click()\n\n // check for saved page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n // check the selected filters\n checkSelectedFilterValues({\n length: 6,\n buttonValues: selectedFiltersButtonValues,\n })\n })\n\n it('should init the report with saved interactive defaults', () => {\n // request the report\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n cy.url().then((url) => {\n viewReportUrl = url\n })\n\n // check saved defaults page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n const selectedFiltersButtonValues = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.1, Value 8.2, Value 8.3 + 1 more' },\n ]\n checkSelectedFilterValues({\n length: 6,\n buttonValues: selectedFiltersButtonValues,\n })\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n checkSelectedFiltersInUserReports({\n name: 'Interactive Report',\n product: 'Interactive Report',\n length: 5,\n selectedFilters: selectedFiltersButtonValues,\n })\n })\n\n it('should reset the filter values to the saved defaults', () => {\n cy.visit(viewReportUrl)\n\n // check saved defaults page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n const savedDefaultSelectedFilters = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.1, Value 8.2, Value 8.3 + 1 more' },\n ]\n checkSelectedFilterValues({\n length: 6,\n buttonValues: savedDefaultSelectedFilters,\n })\n\n // apply some filters\n showFilters()\n cy.findByRole('checkbox', { name: 'Value 8.1' }).uncheck()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).uncheck()\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.3')\n applyFilters()\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.3' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.4' },\n ],\n })\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n checkSelectedFiltersInUserReports({\n name: 'Interactive Report',\n product: 'Interactive Report',\n length: 5,\n selectedFilters: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.3' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.4' },\n ],\n })\n\n cy.visit(viewReportUrl)\n\n cy.findByRole('link', { name: 'Reset filters' }).click()\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: savedDefaultSelectedFilters,\n })\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n checkSelectedFiltersInUserReports({\n name: 'Interactive Report',\n product: 'Interactive Report',\n length: 5,\n selectedFilters: savedDefaultSelectedFilters,\n })\n })\n\n it('should update the filter values and init the report with the updated interactive defaults', () => {\n cy.visit(viewReportUrl)\n\n // check saved defaults page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.1, Value 8.2, Value 8.3 + 1 more' },\n ],\n })\n\n // apply some filters\n showFilters()\n cy.findByRole('checkbox', { name: 'Value 8.1' }).uncheck()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).uncheck()\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.3')\n applyFilters()\n\n const expectedSelectedValues = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.3' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.4' },\n ]\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: expectedSelectedValues,\n })\n\n updateDefaultsButton().click()\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: expectedSelectedValues,\n })\n\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n cy.url().then((url) => {\n viewReportUrl = url\n })\n\n // check the initial filter values match the default\n checkSelectedFilterValues({\n length: 6,\n buttonValues: expectedSelectedValues,\n })\n\n // check saved defaults page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n checkSelectedFiltersInUserReports({\n name: 'Interactive Report',\n product: 'Interactive Report',\n length: 5,\n selectedFilters: expectedSelectedValues,\n })\n })\n\n it('should delete the saved defaults', () => {\n cy.visit(viewReportUrl)\n\n checkSelectedFilterValues({\n length: 6,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 2', value: 'Value 2.3' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.4' },\n ],\n })\n\n deleteDefaultsButton().click()\n\n // Expect DPD defaults to be applied\n checkSelectedFilterValues({\n length: 5,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ],\n })\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n checkSelectedFiltersInUserReports({\n name: 'Interactive Report',\n product: 'Interactive Report',\n length: 4,\n selectedFilters: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ],\n })\n })\n\n describe('Input types', () => {\n describe('Relative date range', () => {\n it('should save the relative daterange', () => {\n // request the report\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n\n checkSelectedFilterValues({\n length: 5,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ],\n })\n\n // update the filters\n showFilters()\n cy.findByRole('tab', { name: 'Preset date ranges' }).click()\n cy.findByRole('radio', { name: 'Tomorrow' }).check()\n applyFilters()\n\n const expectedUpdatedSelected = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: 'Tomorrow' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ]\n\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n // save the filters\n saveDefaultsButton().click()\n\n // check for saved page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n // check the selected filters\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n // request the report to check it defaults to saved\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n\n // check the selected filters\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n deleteDefaultsButton().click()\n })\n })\n\n describe('Multiselect', () => {\n it('should save a single multiselect value', () => {\n // request the report\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n\n checkSelectedFilterValues({\n length: 5,\n buttonValues: [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2, Value 8.3' },\n ],\n })\n\n // update the filters\n showFilters()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).uncheck()\n applyFilters()\n\n const expectedUpdatedSelected = [\n { key: 'Field 1', value: 'Value 1.2' },\n { key: 'Field 3', value: '01/02/2003 - 04/05/2006' },\n { key: 'Field 7', value: '01/02/2005' },\n { key: 'Field 8', value: 'Value 8.2' },\n ]\n\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n // save the filters\n saveDefaultsButton().click()\n\n // check for saved page furniture\n updateDefaultsButton().should('exist')\n deleteDefaultsButton().should('exist')\n\n // check the selected filters\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n // request the report to check it defaults to saved\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n\n // check the selected filters\n checkSelectedFilterValues({\n length: 5,\n buttonValues: expectedUpdatedSelected,\n })\n\n deleteDefaultsButton().click()\n })\n })\n })\n })\n\n describe('Sorting', () => {\n before(() => {\n requestReport({ name: 'Interactive Report', description: 'this is an interactive report', path })\n cy.url().then((url) => {\n viewReportUrl = url\n })\n })\n\n beforeEach(() => {\n cy.visit(viewReportUrl)\n })\n\n it('should show the sort direction in the column header and the url', () => {\n cy.findByRole('link', { name: 'Reset filters' }).click()\n\n // Initial state\n cy.findByRole('link', { name: 'Field 1' }).should('have.class', 'data-table-header-button-sort-ascending')\n cy.findByRole('link', { name: 'Field 2' }).should('have.class', 'data-table-header-button-sort-none')\n\n // Sort desc by field 1\n cy.findByRole('link', { name: 'Field 1' }).click()\n cy.findByRole('link', { name: 'Field 1' }).should('have.class', 'data-table-header-button-sort-descending')\n cy.findByRole('link', { name: 'Field 2' }).should('have.class', 'data-table-header-button-sort-none')\n cy.location().should((location) => {\n expect(location.search).to.contain(`&sortColumn=field1&sortedAsc=false`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n\n // Sort asc by field 1\n cy.findByRole('link', { name: 'Field 1' }).click()\n cy.findByRole('link', { name: 'Field 1' }).should('have.class', 'data-table-header-button-sort-ascending')\n cy.findByRole('link', { name: 'Field 2' }).should('have.class', 'data-table-header-button-sort-none')\n cy.location().should((location) => {\n expect(location.search).to.contain(`&sortColumn=field1&sortedAsc=true`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n\n // Sort asc by field 2\n cy.findByRole('link', { name: 'Field 2' }).click()\n cy.findByRole('link', { name: 'Field 2' }).should('have.class', 'data-table-header-button-sort-ascending')\n cy.findByRole('link', { name: 'Field 1' }).should('have.class', 'data-table-header-button-sort-none')\n cy.location().should((location) => {\n expect(location.search).to.contain(`&sortColumn=field2&sortedAsc=true`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n\n // Sort desc by field 2\n cy.findByRole('link', { name: 'Field 2' }).click()\n cy.findByRole('link', { name: 'Field 2' }).should('have.class', 'data-table-header-button-sort-descending')\n cy.findByRole('link', { name: 'Field 1' }).should('have.class', 'data-table-header-button-sort-none')\n cy.location().should((location) => {\n expect(location.search).to.contain(`&sortColumn=field2&sortedAsc=false`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n })\n })\n })\n})\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_cypressUtils", "import_DateMapper", "path", "viewReportUrl", "tableId", "url", "urlArr", "row", "index", "item", "i", "location", "expectInitialisedColumns", "expectUpdatedColumns", "setColumnValues", "head", "applyFilters", "showFilters", "removeAllFilters", "startValue", "endValue", "val", "dateMapper", "DateMapper", "saveDefaultsButton", "updateDefaultsButton", "deleteDefaultsButton", "checkSelectedFiltersInUserReports", "name", "product", "length", "selectedFilters", "_", "element", "li", "key", "value", "selectedFiltersButtonValues", "savedDefaultSelectedFilters", "expectedSelectedValues", "expectedUpdatedSelected"]
|
|
7
7
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
checkSelectedFilterValues,
|
|
3
|
+
requestReport,
|
|
4
|
+
executeReportStubs,
|
|
5
|
+
} from '../../../../../../../cypress-tests/cypressUtils'
|
|
2
6
|
import DateMapper from '../../../../../utils/DateMapper/DateMapper'
|
|
3
7
|
|
|
4
8
|
context('Viewing a report', () => {
|
|
@@ -8,21 +12,11 @@ context('Viewing a report', () => {
|
|
|
8
12
|
|
|
9
13
|
describe('List report page', () => {
|
|
10
14
|
before(() => {
|
|
11
|
-
|
|
12
|
-
cy.task('resetRedis')
|
|
13
|
-
cy.task('stubDefinitions')
|
|
14
|
-
cy.task('stubGetProductCollections')
|
|
15
|
-
cy.task('stubReportStatusMock')
|
|
16
|
-
cy.task('stubReportsFinishedStatus')
|
|
15
|
+
executeReportStubs()
|
|
17
16
|
cy.task('stubDefinitionRequestExamplesSuccess')
|
|
18
|
-
cy.task('stubReportsFinishedStatus')
|
|
19
|
-
cy.task('stubTestDashboard8')
|
|
20
|
-
cy.task('stubMockDashboardsStatusFinished')
|
|
21
|
-
cy.task('stubRequestSuccessResult20')
|
|
22
17
|
cy.task('stubRequestSuccessResult10')
|
|
23
|
-
cy.task('
|
|
18
|
+
cy.task('stubRequestSuccessResult20')
|
|
24
19
|
cy.task('stubRequestSuccessResult100')
|
|
25
|
-
cy.task('stubViewAsyncReportingResults')
|
|
26
20
|
|
|
27
21
|
// Request and run a report so we can go back to it for each test
|
|
28
22
|
requestReport({ name: 'Successful Report', description: 'this will succeed', path })
|
|
@@ -462,14 +456,9 @@ context('Viewing a report', () => {
|
|
|
462
456
|
}
|
|
463
457
|
|
|
464
458
|
before(() => {
|
|
465
|
-
|
|
466
|
-
cy.task('resetRedis')
|
|
467
|
-
cy.task('stubDefinitions')
|
|
468
|
-
cy.task('stubGetProductCollections')
|
|
459
|
+
executeReportStubs()
|
|
469
460
|
cy.task('stubDefinitionFeatureTestingInteractive')
|
|
470
|
-
cy.task('stubReportStatusMock')
|
|
471
461
|
cy.task('stubAsyncRequestSuccessReportTablesCount')
|
|
472
|
-
cy.task('stubViewAsyncReportingResults')
|
|
473
462
|
cy.task('stubRequestSuccessResult20')
|
|
474
463
|
cy.task('stubRequestSuccessResult100')
|
|
475
464
|
})
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var p=(e,t,a,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of o(t))!c.call(e,r)&&r!==a&&n(e,r,{get:()=>t[r],enumerable:!(i=s(t,r))||i.enumerable});return e};var m=e=>p(n({},"__esModule",{value:!0}),e);var d={};module.exports=m(d);
|
|
2
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../src/dpr/routes/journeys/view-report/async/report/types.ts"],
|
|
4
|
+
"sourcesContent": ["import { components } from '../../../../../types/api'\nimport Dict = NodeJS.Dict\nimport { AsyncReportUrlItemData } from '../../../../../types/UserReports'\n\nexport interface ReportUrls {\n reportUrl: string\n reportSearch?: string\n encodedSearch?: string\n pathname: string\n}\n\nexport interface ExtractedDefinitionData {\n reportName: string\n name: string\n description: string | undefined\n classification: string | undefined\n printable: boolean\n specification: components['schemas']['Specification']\n template: string\n fields: components['schemas']['FieldDefinition'][]\n}\n\nexport interface ExtractedRequestData {\n executionId?: string\n requestedTimestamp?: string\n querySummary: Dict<string>[]\n queryData?: Dict<string | string[]>\n requestUrl?: AsyncReportUrlItemData\n defaultQuery?: string\n dataProductDefinitionsPath?: string\n}\n"],
|
|
5
|
+
"mappings": "kWAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
|
+
"names": ["types_exports", "__toCommonJS"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { components } from '../../../../../types/api'
|
|
2
|
+
import Dict = NodeJS.Dict
|
|
3
|
+
import { AsyncReportUrlItemData } from '../../../../../types/UserReports'
|
|
4
|
+
|
|
5
|
+
export interface ReportUrls {
|
|
6
|
+
reportUrl: string
|
|
7
|
+
reportSearch?: string
|
|
8
|
+
encodedSearch?: string
|
|
9
|
+
pathname: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface ExtractedDefinitionData {
|
|
13
|
+
reportName: string
|
|
14
|
+
name: string
|
|
15
|
+
description: string | undefined
|
|
16
|
+
classification: string | undefined
|
|
17
|
+
printable: boolean
|
|
18
|
+
specification: components['schemas']['Specification']
|
|
19
|
+
template: string
|
|
20
|
+
fields: components['schemas']['FieldDefinition'][]
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface ExtractedRequestData {
|
|
24
|
+
executionId?: string
|
|
25
|
+
requestedTimestamp?: string
|
|
26
|
+
querySummary: Dict<string>[]
|
|
27
|
+
queryData?: Dict<string | string[]>
|
|
28
|
+
requestUrl?: AsyncReportUrlItemData
|
|
29
|
+
defaultQuery?: string
|
|
30
|
+
dataProductDefinitionsPath?: string
|
|
31
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var M=Object.create;var
|
|
1
|
+
var M=Object.create;var b=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var Z=(t,e)=>{for(var o in e)b(t,o,{get:e[o],enumerable:!0})},E=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of J(e))!X.call(t,n)&&n!==o&&b(t,n,{get:()=>e[n],enumerable:!(r=G(e,n))||r.enumerable});return t};var g=(t,e,o)=>(o=t!=null?M(K(t)):{},E(e||!t||!t.__esModule?b(o,"default",{value:t,enumerable:!0}):o,t)),$=t=>E(b({},"__esModule",{value:!0}),t);var ut={};Z(ut,{default:()=>dt,getChildData:()=>Y,getData:()=>O,getSummariesData:()=>W,renderReport:()=>_});module.exports=$(ut);var V=g(require("parseurl")),C=require("../../../../../types/UserReports"),T=g(require("../../../../../types/ReportQuery")),q=require("../../../../../components/_filters/filtersTypeEnum"),x=g(require("../../../../../utils/definitionUtils")),k=g(require("../../../../../components/_reports/report-pagination/utils")),Q=g(require("../../../../../components/_reports/report-totals/utils")),v=g(require("../../../../../components/_filters/utils")),F=g(require("../../../../../components/_reports/report-columns-form/utils")),N=g(require("../../../../../components/_reports/report-actions/utils")),B=g(require("../../../../../components/user-reports/utils")),D=g(require("../../../../../utils/localsHelper")),L=g(require("../../../../../components/_reports/report-data-table/utils")),z=g(require("../../../../../utils/CollatedSummaryBuilder/CollatedSummaryBuilder"));const O=async({res:t,req:e,services:o,token:r,userId:n})=>{const{definitionsPath:s}=D.default.getValues(t),{reportId:i,variantId:a,id:c,tableId:l}=e.params,p=a||c,d=await o.reportingService.getDefinition(r,i,p,s),{variant:u}=d,{specification:m}=u;if(!m)throw new Error("No specification found in variant definition");const f=await o.requestedReportService.getReportByTableId(l,n),R=F.default.getColumns(m,e),h=await tt(d,R,t,e,o,f),w=await et({definition:d,services:o,token:r,req:e,res:t,reportQuery:h}),{summaries:U}=d.variant,S=U?await W(U,o,r,e,t):[],{childVariants:P}=d.variant,I=P?await Y(P,o,r,e,t,f):[];return{definition:d,requestData:f,reportData:w,summariesData:S,childData:I,reportQuery:h,columns:R}},tt=async(t,e,o,r,n,s)=>{const{definitionsPath:i}=D.default.getValues(o),a=x.default.getFields(t),c=x.default.getTemplate(t),l=await v.default.getFilters({fields:a,req:r,res:o,services:n,filtersType:q.FiltersType.INTERACTIVE}),p=r.query?.sortColumn||s?.query?.data?.sortColumn,d=r.query?.sortedAsc||s?.query?.data?.sortedAsc,u=r.query?.selectedPage,m=r.query?.pageSize,y=v.default.setRequestQueryFromFilterValues(l.filters),f={...p&&{sortColumn:p},...d&&{sortedAsc:d},...y,...m&&{pageSize:m},...u&&{pageSize:m},...e&&{columns:e.value}};return new T.default({fields:a,template:c,queryParams:f,definitionsPath:i})},et=async t=>{const{services:e,token:o,req:r,reportQuery:n}=t,{reportId:s,variantId:i,id:a,tableId:c}=r.params,l=i||a;return e.reportingService.getAsyncReport(o,s,l,c,n.toRecordWithFilterPrefix(!0))},W=async(t,e,o,r,n)=>{const{reportId:s,variantId:i,id:a,tableId:c}=r.params,{definitionsPath:l}=D.default.getValues(n),p=i||a;return Promise.all(t.map(async d=>{const u=await e.reportingService.getAsyncSummaryReport(o,s,p,c,d.id,{dataProductDefinitionsPath:l});return{...d,data:u}}))},Y=async(t,e,o,r,n,s)=>{const{definitionsPath:i}=D.default.getValues(n),{reportId:a}=r.params,c=s?.childExecutionData;if(!c)throw new Error("getChildData: No execution data found for child variants");return Promise.all(t.map(async l=>{const{specification:p}=l;if(!p)throw new Error("getChildData: No specification found in child variant definition");const d=new T.default({fields:p?.fields||[],template:p.template,queryParams:r.query,definitionsPath:i}).toRecordWithFilterPrefix(!0),u=c.find(f=>f.variantId===l.id);if(!u)throw new Error("getChildData: No matching child execution data found");const{tableId:m}=u,y=await e.reportingService.getAsyncReport(o,a,l.id,m,d);return{id:l.id,data:y}}))},_=async({req:t,res:e,services:o})=>{const{token:r,dprUser:n}=D.default.getValues(e),{definition:s,requestData:i,reportData:a,childData:c,summariesData:l,reportQuery:p,columns:d}=await O({req:t,res:e,services:o,token:r,userId:n.id}),u=L.default.createDataTable(s,d,a,c,l,p),m=await ot(t,e,o,s,l,u,d,p,i),y={...m,dataTable:u};return i&&Object.keys(i).length&&B.default.updateLastViewed({req:t,services:o,reportStateData:i,userId:n.id,filters:m.filterData.filters}),{renderData:y}},ot=async(t,e,o,r,n,s,i,a,c)=>{const{nestedBaseUrl:l}=D.default.getValues(e),p=(0,V.default)(t);if(!p)throw new Error("Unable to set url data from request");const d=p?at(p,t):void 0,u=ct(r),{fields:m,specification:y}=u,f=c?lt(c):void 0,R=await st(r,o,e,t,a),h=await v.default.getFilters({fields:m,req:t,res:e,services:o,filtersType:q.FiltersType.INTERACTIVE}),w=await it(o,e,t,i,R,u,f,d),U=nt(e,t);let S;n.length&&(S=new z.default(y,n).collatePageSummaries());let P,I;if(u.template==="list"){P=k.default.getPaginationData(p,R,t);const{pageSize:A,currentPage:j,totalRows:H}=P;I=Q.default.getTotals(A,j,H,s[0].rowCount)}return{...rt(y)&&{columns:i},filterData:h,count:R,nestedBaseUrl:l,...U,...w,...u,...f,...d,...P&&{pagination:P},...I&&{totals:I},...S&&{reportSummaries:S}}},rt=t=>{const{template:e}=t;return!["row-section","row-section-child","summary","summary-section"].includes(e)},nt=(t,e)=>{const{csrfToken:o}=D.default.getValues(t),{tableId:r,reportId:n,id:s}=e.params;return{csrfToken:o,loadType:C.LoadType.ASYNC,type:C.ReportType.REPORT,tableId:r,reportId:n,id:s}},at=(t,e)=>{const{search:o}=t,r=o?encodeURIComponent(o):void 0,n=o?e.originalUrl.split(o)[0]:e.originalUrl;return{reportUrl:n.replace("/download-disabled","").replace("/download-disabled?",""),reportSearch:o||void 0,encodedSearch:r,pathname:n}},it=async(t,e,o,r,n,s,i,a)=>{const{csrfToken:c,dprUser:l,bookmarkingEnabled:p,downloadingEnabled:d}=D.default.getValues(e),{reportId:u,id:m}=o.params,{downloadPermissionService:y,bookmarkService:f}=t;let R=!1;d&&y&&(R=await y.downloadEnabled(l.id,u,m));let h;return p&&f&&(h=await f.isBookmarked(m,u,l.id)),{actions:pt(c,r,R,n,e,o,s,i,a),canDownload:R,bookmarked:h}},st=async(t,e,o,r,n)=>{const{token:s}=D.default.getValues(o),{tableId:i,reportId:a,id:c}=r.params;return t.variant.interactive?e.reportingService.getAsyncInteractiveCount(s,i,a,c,n):e.reportingService.getAsyncCount(s,i)},ct=t=>{const{variant:e,name:o,description:r}=t,{classification:n,printable:s,specification:i,name:a,description:c}=e;if(!i)throw new Error("No specification found in variant definition");const{template:l,fields:p}=i;return{reportName:o,name:a,description:c||r,classification:n,printable:!!s,specification:i,template:l,fields:p}},lt=t=>{const{query:e,url:o,timestamp:r}=t;return{executionId:t.executionId,requestedTimestamp:r.requested?new Date(r.requested).toLocaleString():void 0,querySummary:e?.summary||[],queryData:e?.data,requestUrl:o?.request,defaultQuery:o?.report?.default,dataProductDefinitionsPath:t.dataProductDefinitionsPath}},pt=(t,e,o,r,n,s,i,a,c)=>{const{reportName:l,name:p,printable:d}=i,{tableId:u,id:m,reportId:y}=s.params,{nestedBaseUrl:f,definitionsPath:R}=D.default.getValues(n);let h;c&&(h={enabled:r>0&&o!==void 0,name:p,reportName:l,csrfToken:t,reportId:y,id:m,tableId:u,columns:e.value,definitionPath:R,loadType:C.LoadType.ASYNC,nestedBaseUrl:f,canDownload:o,currentUrl:c.pathname,currentQueryParams:c.reportSearch,...a?.queryData&&{sortColumn:a.queryData.sortColumn,sortedAsc:a.queryData.sortedAsc}});let w,U;a?.requestUrl?.fullUrl&&(w={reportName:l,name:p,url:a.requestUrl.fullUrl},U={url:a.requestUrl.fullUrl});let S;return a?.executionId&&a?.requestUrl?.fullUrl&&(S={url:a.requestUrl.fullUrl,executionId:a.executionId}),N.default.getActions({...h&&{download:h},...w&&{share:w},...S&&{refresh:S},...U&&{copy:U},print:{enabled:d}})};var dt={renderReport:_};0&&(module.exports={getChildData,getData,getSummariesData,renderReport});
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|