@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.16.1 → 4.17.0

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.
Files changed (79) hide show
  1. package/dpr/components/_catalogue/catalogue/utils.js +1 -1
  2. package/dpr/components/_catalogue/catalogue/utils.js.map +3 -3
  3. package/dpr/components/_catalogue/catalogue/utils.test.ts +15 -1
  4. package/dpr/components/_catalogue/catalogue/utils.ts +22 -4
  5. package/dpr/components/_catalogue/catalogue/view.njk +2 -1
  6. package/dpr/components/_catalogue/catalogue-filters/view.njk +2 -2
  7. package/dpr/components/_catalogue/catalogue-search/clientClass.mjs +14 -0
  8. package/dpr/components/_catalogue/catalogue-search/view.njk +24 -1
  9. package/dpr/data/dprReportingClient.js +1 -1
  10. package/dpr/data/dprReportingClient.js.map +3 -3
  11. package/dpr/data/dprReportingClient.ts +2 -0
  12. package/dpr/middleware/setUpDprResources.js +1 -1
  13. package/dpr/middleware/setUpDprResources.js.map +3 -3
  14. package/dpr/middleware/setUpDprResources.test.ts +7 -0
  15. package/dpr/middleware/setUpDprResources.ts +17 -2
  16. package/dpr/routes/journeys/download-report/tests.cy.js +1 -1
  17. package/dpr/routes/journeys/download-report/tests.cy.js.map +2 -2
  18. package/dpr/routes/journeys/download-report/tests.cy.ts +1 -0
  19. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +1 -1
  20. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +2 -2
  21. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.ts +2 -0
  22. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +1 -1
  23. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +2 -2
  24. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.ts +1 -0
  25. package/dpr/routes/journeys/product-collection/routes.js +2 -0
  26. package/dpr/routes/journeys/product-collection/routes.js.map +7 -0
  27. package/dpr/routes/journeys/product-collection/routes.ts +28 -0
  28. package/dpr/routes/journeys/product-collection/selected/controller.js +2 -0
  29. package/dpr/routes/journeys/product-collection/selected/controller.js.map +7 -0
  30. package/dpr/routes/journeys/product-collection/selected/controller.ts +29 -0
  31. package/dpr/routes/journeys/product-collection/selected/routes.js +2 -0
  32. package/dpr/routes/journeys/product-collection/selected/routes.js.map +7 -0
  33. package/dpr/routes/journeys/product-collection/selected/routes.ts +15 -0
  34. package/dpr/routes/journeys/product-collection/selected/tests.cy.js +2 -0
  35. package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +7 -0
  36. package/dpr/routes/journeys/product-collection/selected/tests.cy.ts +54 -0
  37. package/dpr/routes/journeys/product-collection/selected/validation.js +2 -0
  38. package/dpr/routes/journeys/product-collection/selected/validation.js.map +7 -0
  39. package/dpr/routes/journeys/product-collection/selected/validation.ts +5 -0
  40. package/dpr/routes/journeys/request-missing-report/tests.cy.js +1 -1
  41. package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +2 -2
  42. package/dpr/routes/journeys/request-missing-report/tests.cy.ts +1 -0
  43. package/dpr/routes/journeys/request-report/status/tests.cy.js +1 -1
  44. package/dpr/routes/journeys/request-report/status/tests.cy.js.map +2 -2
  45. package/dpr/routes/journeys/request-report/status/tests.cy.ts +1 -0
  46. package/dpr/routes/journeys/request-report/tests.cy.js +1 -1
  47. package/dpr/routes/journeys/request-report/tests.cy.js.map +2 -2
  48. package/dpr/routes/journeys/request-report/tests.cy.ts +3 -14
  49. package/dpr/routes/journeys/routes.js +1 -1
  50. package/dpr/routes/journeys/routes.js.map +2 -2
  51. package/dpr/routes/journeys/routes.ts +2 -0
  52. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +1 -1
  53. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +2 -2
  54. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.ts +1 -0
  55. package/dpr/routes/journeys/view-report/async/report/tests.cy.js +1 -1
  56. package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
  57. package/dpr/routes/journeys/view-report/async/report/tests.cy.ts +2 -0
  58. package/dpr/routes/journeys/view-report/sync/tests.cy.js +1 -1
  59. package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +2 -2
  60. package/dpr/routes/journeys/view-report/sync/tests.cy.ts +1 -0
  61. package/dpr/services/productCollection/productCollectionService.js +2 -0
  62. package/dpr/services/productCollection/productCollectionService.js.map +7 -0
  63. package/dpr/services/productCollection/productCollectionService.ts +25 -0
  64. package/dpr/services/productCollection/productCollectionStoreService.js +2 -0
  65. package/dpr/services/productCollection/productCollectionStoreService.js.map +7 -0
  66. package/dpr/services/productCollection/productCollectionStoreService.ts +26 -0
  67. package/dpr/types/ReportStore.js +1 -1
  68. package/dpr/types/ReportStore.js.map +1 -1
  69. package/dpr/types/ReportStore.ts +1 -0
  70. package/dpr/types/Services.d.js +1 -1
  71. package/dpr/types/Services.d.js.map +1 -1
  72. package/dpr/types/Services.d.ts +13 -0
  73. package/dpr/types/api.d.js +1 -1
  74. package/dpr/types/api.d.js.map +1 -1
  75. package/dpr/types/api.d.ts +195 -2
  76. package/dpr/utils/ReportStoreServiceUtils.js +1 -1
  77. package/dpr/utils/ReportStoreServiceUtils.js.map +3 -3
  78. package/dpr/utils/ReportStoreServiceUtils.ts +7 -0
  79. package/package.json +1 -1
@@ -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('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('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": "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",
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": "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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
  }
@@ -11,6 +11,7 @@ context('Viewing a report', () => {
11
11
  cy.task('resetStubs')
12
12
  cy.task('resetRedis')
13
13
  cy.task('stubDefinitions')
14
+ cy.task('stubGetProductCollections')
14
15
  cy.task('stubReportStatusMock')
15
16
  cy.task('stubReportsFinishedStatus')
16
17
  cy.task('stubDefinitionRequestExamplesSuccess')
@@ -464,6 +465,7 @@ context('Viewing a report', () => {
464
465
  cy.task('resetStubs')
465
466
  cy.task('resetRedis')
466
467
  cy.task('stubDefinitions')
468
+ cy.task('stubGetProductCollections')
467
469
  cy.task('stubDefinitionFeatureTestingInteractive')
468
470
  cy.task('stubReportStatusMock')
469
471
  cy.task('stubAsyncRequestSuccessReportTablesCount')
@@ -1,2 +1,2 @@
1
- context("Platform sync tests",()=>{const t="/embedded/platform/";describe("Sync tests from the platform",()=>{before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubDefinitionSyncReport"),cy.task("stubRequestSuccessResult20"),cy.task("stubReportsFinishedStatus"),cy.task("stubSyncRequestDataSuccess"),cy.task("stubSyncRequestDataSuccessCount")}),it("should load a sync report",()=>{cy.visit(t),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,e)=>e.textContent.includes("This is an sync report")}).within(()=>{cy.findByRole("link",{name:/Load report/}).click()})}),cy.findByRole("heading",{name:/Sync report/,level:1}).should("be.visible")})})});
1
+ context("Platform sync tests",()=>{const t="/embedded/platform/";describe("Sync tests from the platform",()=>{before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubGetProductCollections"),cy.task("stubDefinitionSyncReport"),cy.task("stubRequestSuccessResult20"),cy.task("stubReportsFinishedStatus"),cy.task("stubSyncRequestDataSuccess"),cy.task("stubSyncRequestDataSuccessCount")}),it("should load a sync report",()=>{cy.visit(t),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,e)=>e.textContent.includes("This is an sync report")}).within(()=>{cy.findByRole("link",{name:/Load report/}).click()})}),cy.findByRole("heading",{name:/Sync report/,level:1}).should("be.visible")})})});
2
2
  //# sourceMappingURL=tests.cy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/routes/journeys/view-report/sync/tests.cy.ts"],
4
- "sourcesContent": ["context('Platform sync tests', () => {\n const path = '/embedded/platform/'\n\n describe('Sync tests from the platform', () => {\n before(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubDefinitionSyncReport')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubReportsFinishedStatus')\n cy.task('stubSyncRequestDataSuccess')\n cy.task('stubSyncRequestDataSuccessCount')\n })\n it('should load a sync report', () => {\n cy.visit(path)\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('This is an sync report')\n },\n }).within(() => {\n cy.findByRole('link', { name: /Load report/ }).click()\n })\n })\n\n cy.findByRole('heading', { name: /Sync report/, level: 1 }).should('be.visible')\n })\n })\n})\n"],
5
- "mappings": "AAAA,QAAQ,sBAAuB,IAAM,CACnC,MAAMA,EAAO,sBAEb,SAAS,+BAAgC,IAAM,CAC7C,OAAO,IAAM,CACX,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,iBAAiB,EACzB,GAAG,KAAK,0BAA0B,EAClC,GAAG,KAAK,4BAA4B,EACpC,GAAG,KAAK,2BAA2B,EACnC,GAAG,KAAK,4BAA4B,EACpC,GAAG,KAAK,iCAAiC,CAC3C,CAAC,EACD,GAAG,4BAA6B,IAAM,CACpC,GAAG,MAAMA,CAAI,EAEb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACC,EAAGC,IACDA,EAAQ,YAAY,SAAS,wBAAwB,CAEhE,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,aAAc,CAAC,EAAE,MAAM,CACvD,CAAC,CACH,CAAC,EAED,GAAG,WAAW,UAAW,CAAE,KAAM,cAAe,MAAO,CAAE,CAAC,EAAE,OAAO,YAAY,CACjF,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["context('Platform sync tests', () => {\n const path = '/embedded/platform/'\n\n describe('Sync tests from the platform', () => {\n before(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubGetProductCollections')\n cy.task('stubDefinitionSyncReport')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubReportsFinishedStatus')\n cy.task('stubSyncRequestDataSuccess')\n cy.task('stubSyncRequestDataSuccessCount')\n })\n it('should load a sync report', () => {\n cy.visit(path)\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('This is an sync report')\n },\n }).within(() => {\n cy.findByRole('link', { name: /Load report/ }).click()\n })\n })\n\n cy.findByRole('heading', { name: /Sync report/, level: 1 }).should('be.visible')\n })\n })\n})\n"],
5
+ "mappings": "AAAA,QAAQ,sBAAuB,IAAM,CACnC,MAAMA,EAAO,sBAEb,SAAS,+BAAgC,IAAM,CAC7C,OAAO,IAAM,CACX,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,iBAAiB,EACzB,GAAG,KAAK,2BAA2B,EACnC,GAAG,KAAK,0BAA0B,EAClC,GAAG,KAAK,4BAA4B,EACpC,GAAG,KAAK,2BAA2B,EACnC,GAAG,KAAK,4BAA4B,EACpC,GAAG,KAAK,iCAAiC,CAC3C,CAAC,EACD,GAAG,4BAA6B,IAAM,CACpC,GAAG,MAAMA,CAAI,EAEb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACC,EAAGC,IACDA,EAAQ,YAAY,SAAS,wBAAwB,CAEhE,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,aAAc,CAAC,EAAE,MAAM,CACvD,CAAC,CACH,CAAC,EAED,GAAG,WAAW,UAAW,CAAE,KAAM,cAAe,MAAO,CAAE,CAAC,EAAE,OAAO,YAAY,CACjF,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["path", "_", "element"]
7
7
  }
@@ -6,6 +6,7 @@ context('Platform sync tests', () => {
6
6
  cy.task('resetStubs')
7
7
  cy.task('resetRedis')
8
8
  cy.task('stubDefinitions')
9
+ cy.task('stubGetProductCollections')
9
10
  cy.task('stubDefinitionSyncReport')
10
11
  cy.task('stubRequestSuccessResult20')
11
12
  cy.task('stubReportsFinishedStatus')
@@ -0,0 +1,2 @@
1
+ var l=Object.create;var n=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var g=(o,t)=>{for(var e in t)n(o,e,{get:t[e],enumerable:!0})},s=(o,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of m(t))!u.call(o,r)&&r!==e&&n(o,r,{get:()=>t[r],enumerable:!(i=C(t,r))||i.enumerable});return o};var P=(o,t,e)=>(e=o!=null?l(p(o)):{},s(t||!o||!o.__esModule?n(e,"default",{value:o,enumerable:!0}):e,o)),a=o=>s(n({},"__esModule",{value:!0}),o);var h={};g(h,{ProductCollectionService:()=>d});module.exports=a(h);var c=P(require("src/dpr/data/restClient"));class d{constructor(t){this.restClient=new c.default("ProductCollection API",t)}async getProductCollections(t){return this.restClient.get({path:"/productCollections",token:t})}async getProductCollection(t,e){return this.restClient.get({path:`/productCollections/${e}`,token:t})}}0&&(module.exports={ProductCollectionService});
2
+ //# sourceMappingURL=productCollectionService.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/dpr/services/productCollection/productCollectionService.ts"],
4
+ "sourcesContent": ["import RestClient from 'src/dpr/data/restClient'\nimport { ApiConfig } from 'src/dpr/data/types'\nimport { components } from 'src/dpr/types/api'\n\nexport class ProductCollectionService {\n restClient: RestClient\n\n constructor(config: ApiConfig) {\n this.restClient = new RestClient('ProductCollection API', config)\n }\n\n async getProductCollections(token: string): Promise<components['schemas']['ProductCollectionSummary'][]> {\n return this.restClient.get({\n path: `/productCollections`,\n token,\n })\n }\n\n async getProductCollection(token: string, id: string): Promise<components['schemas']['ProductCollectionDTO']> {\n return this.restClient.get({\n path: `/productCollections/${id}`,\n token,\n })\n }\n}\n"],
5
+ "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAuB,sCAIhB,MAAMF,CAAyB,CAGpC,YAAYG,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,wBAAyBD,CAAM,CAClE,CAEA,MAAM,sBAAsBE,EAA6E,CACvG,OAAO,KAAK,WAAW,IAAI,CACzB,KAAM,sBACN,MAAAA,CACF,CAAC,CACH,CAEA,MAAM,qBAAqBA,EAAeC,EAAoE,CAC5G,OAAO,KAAK,WAAW,IAAI,CACzB,KAAM,uBAAuBA,CAAE,GAC/B,MAAAD,CACF,CAAC,CACH,CACF",
6
+ "names": ["productCollectionService_exports", "__export", "ProductCollectionService", "__toCommonJS", "import_restClient", "config", "RestClient", "token", "id"]
7
+ }
@@ -0,0 +1,25 @@
1
+ import RestClient from 'src/dpr/data/restClient'
2
+ import { ApiConfig } from 'src/dpr/data/types'
3
+ import { components } from 'src/dpr/types/api'
4
+
5
+ export class ProductCollectionService {
6
+ restClient: RestClient
7
+
8
+ constructor(config: ApiConfig) {
9
+ this.restClient = new RestClient('ProductCollection API', config)
10
+ }
11
+
12
+ async getProductCollections(token: string): Promise<components['schemas']['ProductCollectionSummary'][]> {
13
+ return this.restClient.get({
14
+ path: `/productCollections`,
15
+ token,
16
+ })
17
+ }
18
+
19
+ async getProductCollection(token: string, id: string): Promise<components['schemas']['ProductCollectionDTO']> {
20
+ return this.restClient.get({
21
+ path: `/productCollections/${id}`,
22
+ token,
23
+ })
24
+ }
25
+ }
@@ -0,0 +1,2 @@
1
+ var a=Object.create;var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var f=(e,t)=>{for(var o in t)i(e,o,{get:t[o],enumerable:!0})},n=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of S(t))!C.call(e,c)&&c!==o&&i(e,c,{get:()=>t[c],enumerable:!(r=u(t,c))||r.enumerable});return e};var l=(e,t,o)=>(o=e!=null?a(g(e)):{},n(t||!e||!e.__esModule?i(o,"default",{value:e,enumerable:!0}):o,e)),p=e=>n(i({},"__esModule",{value:!0}),e);var P={};f(P,{ProductCollectionStoreService:()=>m});module.exports=p(P);var s=l(require("../../utils/logger")),d=l(require("../reportStoreService"));class m extends d.default{constructor(t){super(t),s.default.info("Service created: ProductCollectionStoreService")}async getSelectedProductCollectionId(t){return(await this.getState(t)).productCollectionInfo?.selectedProductCollection}async setSelectedProductCollectionId(t,o){const r=await this.getState(t);return this.saveState(t,{...r,productCollectionInfo:{...r.productCollectionInfo,selectedProductCollection:o}})}}0&&(module.exports={ProductCollectionStoreService});
2
+ //# sourceMappingURL=productCollectionStoreService.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/dpr/services/productCollection/productCollectionStoreService.ts"],
4
+ "sourcesContent": ["import ReportDataStore from '../../data/reportDataStore'\nimport logger from '../../utils/logger'\nimport ReportStoreService from '../reportStoreService'\n\nexport class ProductCollectionStoreService extends ReportStoreService {\n constructor(reportDataStore: ReportDataStore) {\n super(reportDataStore)\n logger.info('Service created: ProductCollectionStoreService')\n }\n\n async getSelectedProductCollectionId(userId: string): Promise<string | undefined> {\n const userConfig = await this.getState(userId)\n return userConfig.productCollectionInfo?.selectedProductCollection\n }\n\n async setSelectedProductCollectionId(userId: string, id: string): Promise<void> {\n const userConfig = await this.getState(userId)\n return this.saveState(userId, {\n ...userConfig,\n productCollectionInfo: {\n ...userConfig.productCollectionInfo,\n selectedProductCollection: id,\n },\n })\n }\n}\n"],
5
+ "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAmB,iCACnBC,EAA+B,oCAExB,MAAMH,UAAsC,EAAAI,OAAmB,CACpE,YAAYC,EAAkC,CAC5C,MAAMA,CAAe,EACrB,EAAAC,QAAO,KAAK,gDAAgD,CAC9D,CAEA,MAAM,+BAA+BC,EAA6C,CAEhF,OADmB,MAAM,KAAK,SAASA,CAAM,GAC3B,uBAAuB,yBAC3C,CAEA,MAAM,+BAA+BA,EAAgBC,EAA2B,CAC9E,MAAMC,EAAa,MAAM,KAAK,SAASF,CAAM,EAC7C,OAAO,KAAK,UAAUA,EAAQ,CAC5B,GAAGE,EACH,sBAAuB,CACrB,GAAGA,EAAW,sBACd,0BAA2BD,CAC7B,CACF,CAAC,CACH,CACF",
6
+ "names": ["productCollectionStoreService_exports", "__export", "ProductCollectionStoreService", "__toCommonJS", "import_logger", "import_reportStoreService", "ReportStoreService", "reportDataStore", "logger", "userId", "id", "userConfig"]
7
+ }
@@ -0,0 +1,26 @@
1
+ import ReportDataStore from '../../data/reportDataStore'
2
+ import logger from '../../utils/logger'
3
+ import ReportStoreService from '../reportStoreService'
4
+
5
+ export class ProductCollectionStoreService extends ReportStoreService {
6
+ constructor(reportDataStore: ReportDataStore) {
7
+ super(reportDataStore)
8
+ logger.info('Service created: ProductCollectionStoreService')
9
+ }
10
+
11
+ async getSelectedProductCollectionId(userId: string): Promise<string | undefined> {
12
+ const userConfig = await this.getState(userId)
13
+ return userConfig.productCollectionInfo?.selectedProductCollection
14
+ }
15
+
16
+ async setSelectedProductCollectionId(userId: string, id: string): Promise<void> {
17
+ const userConfig = await this.getState(userId)
18
+ return this.saveState(userId, {
19
+ ...userConfig,
20
+ productCollectionInfo: {
21
+ ...userConfig.productCollectionInfo,
22
+ selectedProductCollection: id,
23
+ },
24
+ })
25
+ }
26
+ }
@@ -1,2 +1,2 @@
1
- var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var d=(o,e,n,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of m(e))!s.call(o,r)&&r!==n&&i(o,r,{get:()=>e[r],enumerable:!(t=a(e,r))||t.enumerable});return o};var f=o=>d(i({},"__esModule",{value:!0}),o);var l={};module.exports=f(l);
1
+ var i=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var a=(o,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of d(e))!s.call(o,t)&&t!==n&&i(o,t,{get:()=>e[t],enumerable:!(r=l(e,t))||r.enumerable});return o};var f=o=>a(i({},"__esModule",{value:!0}),o);var m={};module.exports=f(m);
2
2
  //# sourceMappingURL=ReportStore.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/types/ReportStore.ts"],
4
- "sourcesContent": ["import { defaultFilterConfig } from '../utils/Personalisation/types'\nimport { BookmarkStoreData } from './Bookmark'\nimport { DownloadPermissionConfig } from './Download'\nimport { RequestedReport, RecentlyViewedReport } from './UserReports'\n\nexport interface ReportStoreConfig {\n requestedReports: RequestedReport[]\n recentlyViewedReports: RecentlyViewedReport[]\n bookmarks: BookmarkStoreData[]\n downloadPermissions?: DownloadPermissionConfig[]\n defaultFilters?: defaultFilterConfig[]\n}\n"],
4
+ "sourcesContent": ["import { defaultFilterConfig } from '../utils/Personalisation/types'\nimport { BookmarkStoreData } from './Bookmark'\nimport { DownloadPermissionConfig } from './Download'\nimport { RequestedReport, RecentlyViewedReport } from './UserReports'\n\nexport interface ReportStoreConfig {\n requestedReports: RequestedReport[]\n recentlyViewedReports: RecentlyViewedReport[]\n bookmarks: BookmarkStoreData[]\n downloadPermissions?: DownloadPermissionConfig[]\n defaultFilters?: defaultFilterConfig[]\n productCollectionInfo?: { selectedProductCollection: string }\n}\n"],
5
5
  "mappings": "kWAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["ReportStore_exports", "__toCommonJS"]
7
7
  }
@@ -9,4 +9,5 @@ export interface ReportStoreConfig {
9
9
  bookmarks: BookmarkStoreData[]
10
10
  downloadPermissions?: DownloadPermissionConfig[]
11
11
  defaultFilters?: defaultFilterConfig[]
12
+ productCollectionInfo?: { selectedProductCollection: string }
12
13
  }
@@ -1,2 +1,2 @@
1
- var t=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var n=(r,e,s,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of S(e))!v.call(r,i)&&i!==s&&t(r,i,{get:()=>e[i],enumerable:!(o=c(e,i))||o.enumerable});return r};var a=r=>n(t({},"__esModule",{value:!0}),r);var l={};module.exports=a(l);
1
+ var t=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var s=(r,e,c,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of l(e))!v.call(r,i)&&i!==c&&t(r,i,{get:()=>e[i],enumerable:!(o=S(e,i))||o.enumerable});return r};var n=r=>s(t({},"__esModule",{value:!0}),r);var d={};module.exports=n(d);
2
2
  //# sourceMappingURL=Services.d.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/types/Services.d.ts"],
4
- "sourcesContent": ["import MissingReportClient from '../services/missingReport/missingReportClient'\n\nexport type Services = UserStoreServices & {\n reportingService: ReportingService\n dashboardService: DashboardService\n missingReportClient: MissingReportClient\n}\n\nexport interface UserStoreServices {\n downloadPermissionService?: DownloadPermissionService\n requestedReportService?: RequestedReportService\n recentlyViewedService?: RecentlyViewedStoreService\n bookmarkService?: BookmarkService\n defaultFilterValuesService?: DefaultFilterValuesService\n}\n"],
4
+ "sourcesContent": ["import {\n BookmarkService,\n DashboardService,\n DefaultFilterValuesService,\n DownloadPermissionService,\n RecentlyViewedStoreService,\n ReportingService,\n RequestedReportService,\n} from '../services'\nimport { ProductCollectionStoreService } from '../services/productCollection/productCollectionStoreService'\nimport MissingReportClient from '../services/missingReport/missingReportClient'\nimport { ProductCollectionService } from '../services/productCollection/productCollectionService'\n\nexport type Services = UserStoreServices & {\n reportingService: ReportingService\n dashboardService: DashboardService\n missingReportClient: MissingReportClient\n productCollectionService: ProductCollectionService\n}\n\nexport interface UserStoreServices {\n downloadPermissionService?: DownloadPermissionService\n requestedReportService?: RequestedReportService\n recentlyViewedService?: RecentlyViewedStoreService\n bookmarkService?: BookmarkService\n defaultFilterValuesService?: DefaultFilterValuesService\n productCollectionStoreService?: ProductCollectionStoreService\n}\n"],
5
5
  "mappings": "kWAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["Services_d_exports", "__toCommonJS"]
7
7
  }
@@ -1,9 +1,21 @@
1
+ import {
2
+ BookmarkService,
3
+ DashboardService,
4
+ DefaultFilterValuesService,
5
+ DownloadPermissionService,
6
+ RecentlyViewedStoreService,
7
+ ReportingService,
8
+ RequestedReportService,
9
+ } from '../services'
10
+ import { ProductCollectionStoreService } from '../services/productCollection/productCollectionStoreService'
1
11
  import MissingReportClient from '../services/missingReport/missingReportClient'
12
+ import { ProductCollectionService } from '../services/productCollection/productCollectionService'
2
13
 
3
14
  export type Services = UserStoreServices & {
4
15
  reportingService: ReportingService
5
16
  dashboardService: DashboardService
6
17
  missingReportClient: MissingReportClient
18
+ productCollectionService: ProductCollectionService
7
19
  }
8
20
 
9
21
  export interface UserStoreServices {
@@ -12,4 +24,5 @@ export interface UserStoreServices {
12
24
  recentlyViewedService?: RecentlyViewedStoreService
13
25
  bookmarkService?: BookmarkService
14
26
  defaultFilterValuesService?: DefaultFilterValuesService
27
+ productCollectionStoreService?: ProductCollectionStoreService
15
28
  }
@@ -1,2 +1,2 @@
1
- var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var c=(n,e,o,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of i(e))!p.call(n,r)&&r!==o&&s(n,r,{get:()=>e[r],enumerable:!(t=a(e,r))||t.enumerable});return n};var d=n=>c(s({},"__esModule",{value:!0}),n);var m={};module.exports=d(m);
1
+ var o=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var c=(n,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of i(e))!p.call(n,r)&&r!==s&&o(n,r,{get:()=>e[r],enumerable:!(t=a(e,r))||t.enumerable});return n};var d=n=>c(o({},"__esModule",{value:!0}),n);var m={};module.exports=d(m);
2
2
  //# sourceMappingURL=api.d.js.map