@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/my-reports/bookmarks/tests.cy.ts"],
4
- "sourcesContent": ["import { featureTestingUnprintable } from '@networkMocks/report/mockVariants/feature-testing/unprintable'\nimport { featureTestingEmptyQuery } from '@networkMocks/report/mockVariants/feature-testing/emptyQuery'\n\ncontext('Bookmarks list', () => {\n const path = '/embedded/platform/'\n\n describe('check the default starting state', () => {\n it('should have the default bookmarks from the caseload bookmark config', () => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubDefinitionUnprintable')\n cy.task('stubDefinitionEmptyReport')\n cy.task('stubSingleSummaries')\n cy.visit(path)\n\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n cy.findByRole('link', {\n name: (_, element) => (element as HTMLAnchorElement).href.includes(featureTestingUnprintable.id),\n })\n cy.findByRole('link', {\n name: (_, element) => (element as HTMLAnchorElement).href.includes(featureTestingEmptyQuery.id),\n })\n })\n })\n })\n })\n\n describe('check other interactions', () => {\n before(() => {\n cy.task('resetStubs')\n cy.task('stubDefinitions')\n cy.task('resetRedis')\n cy.task('stubSingleSummaries')\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubDefinitionUnprintable')\n cy.task('stubDefinitionEmptyReport')\n cy.task('stubListExampleDashboard')\n cy.task('stubDefinitionMockReportVariant35')\n cy.task('stubTestDashboard8')\n cy.task('stubDefinitionFeatureTestingInteractive')\n cy.task('stubDashboardSuccessResult20')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubPollingReportEndpoint')\n })\n\n beforeEach(() => {\n cy.visit(path)\n })\n\n describe('Bookmarking via the catalogue', () => {\n describe('report', () => {\n it('should add a bookmark to the bookmarks list', () => {\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n cy.findAllByRole('row').contains('Interactive Report with async filters').should('exist')\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).should('exist')\n })\n })\n })\n\n it('should remove a bookmark to the bookmarks list', () => {\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).should('exist')\n })\n })\n })\n })\n\n describe('dashboard', () => {\n it('should add a bookmark to the bookmarks list', () => {\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n cy.findAllByRole('row').contains('Data quality data set').should('exist')\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).should('exist')\n })\n })\n })\n\n it('should remove a bookmark from the bookmarks list', () => {\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).should('exist')\n })\n })\n })\n })\n\n describe('missing report', () => {\n it('should not be able to be bookmarked', () => {\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Description for missing report 1')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).should('not.exist')\n cy.findByRole('link', { name: /Request report/ }).should('be.visible')\n })\n })\n })\n })\n })\n\n describe('Removing via the user reports list', () => {\n it('should remove a dashboard bookmark', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n })\n\n it('should remove a report bookmark', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n })\n })\n\n describe('Bookmarking via the report', () => {\n let viewReportUrl: string\n\n before(() => {\n cy.task('stubDefinitionFeatureTestingMissingDesc')\n cy.task('stubReportsFinishedStatus')\n cy.task('stubViewAsyncReportingResults')\n cy.task('stubRequestSuccessReportTablesCount')\n\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n element.textContent.includes('Feature testing') &&\n element.textContent.includes('Missing variant description') &&\n element.textContent.includes('Example variants used for feature testing')\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('combobox', { name: /Field 2/ }).select('Value 2.1')\n cy.findByRole('button', { name: /Request report/ }).click()\n\n cy.findByRole('button', { name: /Enable download/ }).should('be.visible')\n cy.url().then((url) => {\n viewReportUrl = url\n })\n })\n\n it('should add a bookmark', () => {\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n\n cy.visit(viewReportUrl)\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n cy.findByRole('button', { name: /Bookmarked/ }).should('be.visible')\n\n cy.visit(path)\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n })\n\n it('should remove a bookmark', () => {\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n cy.visit(viewReportUrl)\n\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n cy.findByRole('button', { name: /Bookmark removed/ })\n\n cy.visit(path)\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n })\n })\n\n describe('Bookmarking via the dashboard', () => {\n let viewReportUrl: string\n\n before(() => {\n cy.task('stubTestDashboard8')\n cy.task('stubMockDashboardsStatusFinished')\n cy.task('stubViewAsyncResults')\n cy.task('stubDashboardSuccessResult20')\n\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n element.textContent.includes('Test Dashboard') &&\n element.textContent.includes('Dashboard used for testing testing')\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request dashboard' }).click()\n })\n })\n cy.findByRole('button', { name: /Request dashboard/ }).click()\n\n cy.url().then((url) => {\n viewReportUrl = url\n })\n })\n\n it('should add a bookmark', () => {\n cy.visit(viewReportUrl)\n cy.findByRole('button', { name: /Add bookmark/ })\n .click()\n .contains('Bookmarked')\n cy.visit(path)\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n })\n\n it('should remove a bookmark', () => {\n cy.visit(path)\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n cy.visit(viewReportUrl)\n cy.findByRole('button', { name: /Remove bookmark/ })\n .click()\n .contains('Bookmark removed')\n cy.visit(path)\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n })\n })\n\n describe('bookmarking should be idempotent', () => {\n it('should not change the bookmark status of an already bookmarked item', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n // Deselect the bookmark hidden input so that we try to add it whilst it's already added\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.get('input').then((el) => {\n // eslint-disable-next-line no-param-reassign\n ;(el.get(0) as HTMLInputElement).checked = false\n el.get(0).removeAttribute('checked')\n })\n cy.get('input').invoke('attr', 'checked').should('equal', undefined)\n })\n })\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n cy.reload()\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).should('exist')\n })\n })\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n })\n\n it('should not change the bookmark status of an unbookmarked item', () => {\n // Select the bookmark hidden input so that we try to add it whilst it's already added\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.get('input').then((el) => {\n // eslint-disable-next-line no-param-reassign\n ;(el.get(0) as HTMLInputElement).checked = true\n el.get(0).setAttribute('checked', 'true')\n })\n // Browser does funny things with checked attribute, it can be 'checked' or 'true' or unset - just check its there and not false\n cy.get('input').invoke('attr', 'checked').should('not.equal', undefined).and('not.equal', false)\n })\n })\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n cy.reload()\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).should('exist')\n })\n })\n })\n })\n })\n})\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { featureTestingUnprintable } from '@networkMocks/report/mockVariants/feature-testing/unprintable'\nimport { featureTestingEmptyQuery } from '@networkMocks/report/mockVariants/feature-testing/emptyQuery'\n\ncontext('Bookmarks list', () => {\n const path = '/embedded/platform/'\n\n describe('check the default starting state', () => {\n it('should have the default bookmarks from the caseload bookmark config', () => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubGetProductCollections')\n cy.task('stubDefinitionUnprintable')\n cy.task('stubDefinitionEmptyReport')\n cy.task('stubSingleSummaries')\n cy.visit(path)\n\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n cy.findByRole('link', {\n name: (_, element) => (element as HTMLAnchorElement).href.includes(featureTestingUnprintable.id),\n })\n cy.findByRole('link', {\n name: (_, element) => (element as HTMLAnchorElement).href.includes(featureTestingEmptyQuery.id),\n })\n })\n })\n })\n })\n\n describe('check other interactions', () => {\n before(() => {\n cy.task('resetStubs')\n cy.task('stubDefinitions')\n cy.task('resetRedis')\n cy.task('stubGetProductCollections')\n cy.task('stubSingleSummaries')\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubDefinitionUnprintable')\n cy.task('stubDefinitionEmptyReport')\n cy.task('stubListExampleDashboard')\n cy.task('stubDefinitionMockReportVariant35')\n cy.task('stubTestDashboard8')\n cy.task('stubDefinitionFeatureTestingInteractive')\n cy.task('stubDashboardSuccessResult20')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubPollingReportEndpoint')\n })\n\n beforeEach(() => {\n cy.visit(path)\n })\n\n describe('Bookmarking via the catalogue', () => {\n describe('report', () => {\n it('should add a bookmark to the bookmarks list', () => {\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n cy.findAllByRole('row').contains('Interactive Report with async filters').should('exist')\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).should('exist')\n })\n })\n })\n\n it('should remove a bookmark to the bookmarks list', () => {\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).should('exist')\n })\n })\n })\n })\n\n describe('dashboard', () => {\n it('should add a bookmark to the bookmarks list', () => {\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n cy.findAllByRole('row').contains('Data quality data set').should('exist')\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).should('exist')\n })\n })\n })\n\n it('should remove a bookmark from the bookmarks list', () => {\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).should('exist')\n })\n })\n })\n })\n\n describe('missing report', () => {\n it('should not be able to be bookmarked', () => {\n cy.findByRole('tab', { name: /Bookmarks/ }).click()\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Description for missing report 1')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).should('not.exist')\n cy.findByRole('link', { name: /Request report/ }).should('be.visible')\n })\n })\n })\n })\n })\n\n describe('Removing via the user reports list', () => {\n it('should remove a dashboard bookmark', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Data quality data set')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n })\n\n it('should remove a report bookmark', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n })\n })\n\n describe('Bookmarking via the report', () => {\n let viewReportUrl: string\n\n before(() => {\n cy.task('stubDefinitionFeatureTestingMissingDesc')\n cy.task('stubReportsFinishedStatus')\n cy.task('stubViewAsyncReportingResults')\n cy.task('stubRequestSuccessReportTablesCount')\n\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n element.textContent.includes('Feature testing') &&\n element.textContent.includes('Missing variant description') &&\n element.textContent.includes('Example variants used for feature testing')\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('combobox', { name: /Field 2/ }).select('Value 2.1')\n cy.findByRole('button', { name: /Request report/ }).click()\n\n cy.findByRole('button', { name: /Enable download/ }).should('be.visible')\n cy.url().then((url) => {\n viewReportUrl = url\n })\n })\n\n it('should add a bookmark', () => {\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n\n cy.visit(viewReportUrl)\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n cy.findByRole('button', { name: /Bookmarked/ }).should('be.visible')\n\n cy.visit(path)\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n })\n\n it('should remove a bookmark', () => {\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n cy.visit(viewReportUrl)\n\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n cy.findByRole('button', { name: /Bookmark removed/ })\n\n cy.visit(path)\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n })\n })\n\n describe('Bookmarking via the dashboard', () => {\n let viewReportUrl: string\n\n before(() => {\n cy.task('stubTestDashboard8')\n cy.task('stubMockDashboardsStatusFinished')\n cy.task('stubViewAsyncResults')\n cy.task('stubDashboardSuccessResult20')\n\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n element.textContent.includes('Test Dashboard') &&\n element.textContent.includes('Dashboard used for testing testing')\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request dashboard' }).click()\n })\n })\n cy.findByRole('button', { name: /Request dashboard/ }).click()\n\n cy.url().then((url) => {\n viewReportUrl = url\n })\n })\n\n it('should add a bookmark', () => {\n cy.visit(viewReportUrl)\n cy.findByRole('button', { name: /Add bookmark/ })\n .click()\n .contains('Bookmarked')\n cy.visit(path)\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n })\n\n it('should remove a bookmark', () => {\n cy.visit(path)\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 3)\n })\n })\n cy.visit(viewReportUrl)\n cy.findByRole('button', { name: /Remove bookmark/ })\n .click()\n .contains('Bookmark removed')\n cy.visit(path)\n cy.findByLabelText(/Bookmarks.*/i).within(() => {\n cy.findAllByRole('rowgroup')\n .eq(1)\n .within(() => {\n cy.findAllByRole('row').should('have.length', 2)\n })\n })\n })\n })\n\n describe('bookmarking should be idempotent', () => {\n it('should not change the bookmark status of an already bookmarked item', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n // Deselect the bookmark hidden input so that we try to add it whilst it's already added\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.get('input').then((el) => {\n // eslint-disable-next-line no-param-reassign\n ;(el.get(0) as HTMLInputElement).checked = false\n el.get(0).removeAttribute('checked')\n })\n cy.get('input').invoke('attr', 'checked').should('equal', undefined)\n })\n })\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n cy.reload()\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).should('exist')\n })\n })\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Remove bookmark/ }).click()\n })\n })\n })\n\n it('should not change the bookmark status of an unbookmarked item', () => {\n // Select the bookmark hidden input so that we try to add it whilst it's already added\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.get('input').then((el) => {\n // eslint-disable-next-line no-param-reassign\n ;(el.get(0) as HTMLInputElement).checked = true\n el.get(0).setAttribute('checked', 'true')\n })\n // Browser does funny things with checked attribute, it can be 'checked' or 'true' or unset - just check its there and not false\n cy.get('input').invoke('attr', 'checked').should('not.equal', undefined).and('not.equal', false)\n })\n })\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n cy.reload()\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).should('exist')\n })\n })\n })\n })\n })\n})\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_unprintable", "import_emptyQuery", "path", "_", "element", "viewReportUrl", "url", "el"]
7
7
  }
@@ -9,6 +9,7 @@ context('Bookmarks list', () => {
9
9
  cy.task('resetStubs')
10
10
  cy.task('resetRedis')
11
11
  cy.task('stubDefinitions')
12
+ cy.task('stubGetProductCollections')
12
13
  cy.task('stubDefinitionUnprintable')
13
14
  cy.task('stubDefinitionEmptyReport')
14
15
  cy.task('stubSingleSummaries')
@@ -36,6 +37,7 @@ context('Bookmarks list', () => {
36
37
  cy.task('resetStubs')
37
38
  cy.task('stubDefinitions')
38
39
  cy.task('resetRedis')
40
+ cy.task('stubGetProductCollections')
39
41
  cy.task('stubSingleSummaries')
40
42
  cy.task('stubDefinitionRequestExamplesSuccess')
41
43
  cy.task('stubDefinitionUnprintable')
@@ -1,2 +1,2 @@
1
- context("Recently viewed list",()=>{const t="/embedded/platform/",i=()=>{cy.task("stubReportsSubmittedStatus"),cy.findByRole("strong").contains("SUBMITTED"),cy.task("stubReportsPickedStatus"),cy.findByRole("strong").contains("PICKED"),cy.task("stubReportsStartedStatus"),cy.findByRole("strong").contains("STARTED"),cy.task("stubReportsFinishedStatus")};before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions")}),beforeEach(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubViewAsyncReportingResults"),cy.task("stubReportsFinishedStatus"),cy.task("stubRequestSuccessResult20"),cy.task("stubRequestSuccessReportTablesCount"),cy.visit(t)}),it("should have no reports in recently viewed",()=>{cy.visit(t),cy.findByRole("tab",{name:/Viewed \(0\)/}).should("be.visible")}),it("should behave correctly for an expired request",()=>{cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,e)=>e.textContent.includes("Successful Report")&&e.textContent.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.url().should("have.string","/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters"),cy.findByRole("button",{name:"Request report"}).click(),i(),cy.findByRole("button",{name:/Enable download/}).should("be.visible"),cy.task("stubReportsExpiredStatus"),cy.visit(t),cy.findByRole("tab",{name:/Viewed/}).click(),cy.reload().reload().reload(),cy.findByLabelText(/Viewed \(/).within(()=>{cy.findByRole("row",{name:(s,e)=>e.textContent.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Remove"}).should("be.visible"),cy.findByRole("cell",{name:"EXPIRED"}).should("be.visible"),cy.findByRole("link",{name:"Refresh"}).click()})}),cy.url().should("have.string","/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters"),cy.visit(t),cy.findByRole("tab",{name:/Viewed/}).click(),cy.findByLabelText(/Viewed \(/).within(()=>{cy.findByRole("row",{name:(s,e)=>e.textContent.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Remove"}).click()})}),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(s,e)=>e.textContent.includes("Successful Report")}).should("not.exist")})})});
1
+ context("Recently viewed list",()=>{const t="/embedded/platform/",i=()=>{cy.task("stubReportsSubmittedStatus"),cy.findByRole("strong").contains("SUBMITTED"),cy.task("stubReportsPickedStatus"),cy.findByRole("strong").contains("PICKED"),cy.task("stubReportsStartedStatus"),cy.findByRole("strong").contains("STARTED"),cy.task("stubReportsFinishedStatus")};before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions")}),beforeEach(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubGetProductCollections"),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubViewAsyncReportingResults"),cy.task("stubReportsFinishedStatus"),cy.task("stubRequestSuccessResult20"),cy.task("stubRequestSuccessReportTablesCount"),cy.visit(t)}),it("should have no reports in recently viewed",()=>{cy.visit(t),cy.findByRole("tab",{name:/Viewed \(0\)/}).should("be.visible")}),it("should behave correctly for an expired request",()=>{cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,e)=>e.textContent.includes("Successful Report")&&e.textContent.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.url().should("have.string","/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters"),cy.findByRole("button",{name:"Request report"}).click(),i(),cy.findByRole("button",{name:/Enable download/}).should("be.visible"),cy.task("stubReportsExpiredStatus"),cy.visit(t),cy.findByRole("tab",{name:/Viewed/}).click(),cy.reload().reload().reload(),cy.findByLabelText(/Viewed \(/).within(()=>{cy.findByRole("row",{name:(s,e)=>e.textContent.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Remove"}).should("be.visible"),cy.findByRole("cell",{name:"EXPIRED"}).should("be.visible"),cy.findByRole("link",{name:"Refresh"}).click()})}),cy.url().should("have.string","/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters"),cy.visit(t),cy.findByRole("tab",{name:/Viewed/}).click(),cy.findByLabelText(/Viewed \(/).within(()=>{cy.findByRole("row",{name:(s,e)=>e.textContent.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Remove"}).click()})}),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(s,e)=>e.textContent.includes("Successful Report")}).should("not.exist")})})});
2
2
  //# sourceMappingURL=tests.cy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.ts"],
4
- "sourcesContent": ["context('Recently viewed list', () => {\n const path = '/embedded/platform/'\n\n const checkStatuses = () => {\n cy.task('stubReportsSubmittedStatus')\n cy.findByRole('strong').contains('SUBMITTED')\n cy.task('stubReportsPickedStatus')\n cy.findByRole('strong').contains('PICKED')\n cy.task('stubReportsStartedStatus')\n cy.findByRole('strong').contains('STARTED')\n cy.task('stubReportsFinishedStatus')\n }\n\n before(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n })\n\n beforeEach(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubViewAsyncReportingResults')\n cy.task('stubReportsFinishedStatus')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubRequestSuccessReportTablesCount')\n cy.visit(path)\n })\n\n it('should have no reports in recently viewed', () => {\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed \\(0\\)/ }).should('be.visible')\n })\n\n it('should behave correctly for an expired request', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Successful Report') && element.textContent.includes('this will succeed')\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.url().should(\n 'have.string',\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters',\n )\n cy.findByRole('button', { name: 'Request report' }).click()\n checkStatuses()\n cy.findByRole('button', { name: /Enable download/ }).should('be.visible')\n\n cy.task('stubReportsExpiredStatus')\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n cy.reload().reload().reload()\n cy.findByLabelText(/Viewed \\(/).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Successful Report')\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Remove' }).should('be.visible')\n cy.findByRole('cell', { name: 'EXPIRED' }).should('be.visible')\n cy.findByRole('link', { name: 'Refresh' }).click()\n })\n })\n const filtersHref = '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters'\n cy.url().should('have.string', filtersHref)\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n cy.findByLabelText(/Viewed \\(/).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Successful Report')\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Remove' }).click()\n })\n })\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Successful Report')\n },\n }).should('not.exist')\n })\n })\n})\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["context('Recently viewed list', () => {\n const path = '/embedded/platform/'\n\n const checkStatuses = () => {\n cy.task('stubReportsSubmittedStatus')\n cy.findByRole('strong').contains('SUBMITTED')\n cy.task('stubReportsPickedStatus')\n cy.findByRole('strong').contains('PICKED')\n cy.task('stubReportsStartedStatus')\n cy.findByRole('strong').contains('STARTED')\n cy.task('stubReportsFinishedStatus')\n }\n\n before(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n })\n\n beforeEach(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubGetProductCollections')\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubViewAsyncReportingResults')\n cy.task('stubReportsFinishedStatus')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubRequestSuccessReportTablesCount')\n cy.visit(path)\n })\n\n it('should have no reports in recently viewed', () => {\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed \\(0\\)/ }).should('be.visible')\n })\n\n it('should behave correctly for an expired request', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Successful Report') && element.textContent.includes('this will succeed')\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.url().should(\n 'have.string',\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters',\n )\n cy.findByRole('button', { name: 'Request report' }).click()\n checkStatuses()\n cy.findByRole('button', { name: /Enable download/ }).should('be.visible')\n\n cy.task('stubReportsExpiredStatus')\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n cy.reload().reload().reload()\n cy.findByLabelText(/Viewed \\(/).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Successful Report')\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Remove' }).should('be.visible')\n cy.findByRole('cell', { name: 'EXPIRED' }).should('be.visible')\n cy.findByRole('link', { name: 'Refresh' }).click()\n })\n })\n const filtersHref = '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters'\n cy.url().should('have.string', filtersHref)\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed/ }).click()\n cy.findByLabelText(/Viewed \\(/).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Successful Report')\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Remove' }).click()\n })\n })\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Successful Report')\n },\n }).should('not.exist')\n })\n })\n})\n"],
5
+ "mappings": "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",
6
6
  "names": ["path", "checkStatuses", "_", "element"]
7
7
  }
@@ -21,6 +21,7 @@ context('Recently viewed list', () => {
21
21
  cy.task('resetStubs')
22
22
  cy.task('resetRedis')
23
23
  cy.task('stubDefinitions')
24
+ cy.task('stubGetProductCollections')
24
25
  cy.task('stubDefinitionRequestExamplesSuccess')
25
26
  cy.task('stubViewAsyncReportingResults')
26
27
  cy.task('stubReportsFinishedStatus')
@@ -0,0 +1,2 @@
1
+ var u=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var p=(r,e)=>{for(var t in e)u(r,t,{get:e[t],enumerable:!0})},g=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of m(e))!l.call(r,s)&&s!==t&&u(r,s,{get:()=>e[s],enumerable:!(o=a(e,s))||o.enumerable});return r};var v=r=>g(u({},"__esModule",{value:!0}),r);var f={};p(f,{ProductCollectionRoutes:()=>P,Routes:()=>n});module.exports=v(f);var c=require("express"),i=require("./selected/routes");function n({layoutPath:r,services:e}){const t=(0,c.Router)({mergeParams:!0});return t.use("/selected",(0,i.routes)({layoutPath:r,services:e})),t}const P=({services:r,path:e,layoutPath:t})=>{const o=(0,c.Router)({mergeParams:!0});return o.use(e,n({services:r,layoutPath:t})),o};0&&(module.exports={ProductCollectionRoutes,Routes});
2
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/dpr/routes/journeys/product-collection/routes.ts"],
4
+ "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Router } from 'express'\n\n// Routes\nimport { routes as selectedRoutes } from './selected/routes'\nimport { Services } from '../../../types/Services'\n\nexport function Routes({ layoutPath, services }: { services: Services; layoutPath: string }) {\n const router = Router({ mergeParams: true })\n router.use(`/selected`, selectedRoutes({ layoutPath, services }))\n\n return router\n}\n\nexport const ProductCollectionRoutes = ({\n services,\n path,\n layoutPath,\n}: {\n services: Services\n path: string\n layoutPath: string\n}) => {\n const router = Router({ mergeParams: true })\n router.use(path, Routes({ services, layoutPath }))\n\n return router\n}\n"],
5
+ "mappings": "4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,EAAA,WAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAuB,mBAGvBC,EAAyC,6BAGlC,SAASH,EAAO,CAAE,WAAAI,EAAY,SAAAC,CAAS,EAA+C,CAC3F,MAAMC,KAAS,UAAO,CAAE,YAAa,EAAK,CAAC,EAC3C,OAAAA,EAAO,IAAI,eAAa,EAAAC,QAAe,CAAE,WAAAH,EAAY,SAAAC,CAAS,CAAC,CAAC,EAEzDC,CACT,CAEO,MAAMP,EAA0B,CAAC,CACtC,SAAAM,EACA,KAAAG,EACA,WAAAJ,CACF,IAIM,CACJ,MAAME,KAAS,UAAO,CAAE,YAAa,EAAK,CAAC,EAC3C,OAAAA,EAAO,IAAIE,EAAMR,EAAO,CAAE,SAAAK,EAAU,WAAAD,CAAW,CAAC,CAAC,EAE1CE,CACT",
6
+ "names": ["routes_exports", "__export", "ProductCollectionRoutes", "Routes", "__toCommonJS", "import_express", "import_routes", "layoutPath", "services", "router", "selectedRoutes", "path"]
7
+ }
@@ -0,0 +1,28 @@
1
+ /* eslint-disable no-param-reassign */
2
+ import { Router } from 'express'
3
+
4
+ // Routes
5
+ import { routes as selectedRoutes } from './selected/routes'
6
+ import { Services } from '../../../types/Services'
7
+
8
+ export function Routes({ layoutPath, services }: { services: Services; layoutPath: string }) {
9
+ const router = Router({ mergeParams: true })
10
+ router.use(`/selected`, selectedRoutes({ layoutPath, services }))
11
+
12
+ return router
13
+ }
14
+
15
+ export const ProductCollectionRoutes = ({
16
+ services,
17
+ path,
18
+ layoutPath,
19
+ }: {
20
+ services: Services
21
+ path: string
22
+ layoutPath: string
23
+ }) => {
24
+ const router = Router({ mergeParams: true })
25
+ router.use(path, Routes({ services, layoutPath }))
26
+
27
+ return router
28
+ }
@@ -0,0 +1,2 @@
1
+ var S=Object.create;var c=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var m=(e,t)=>{for(var o in t)c(e,o,{get:t[o],enumerable:!0})},n=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of a(t))!C.call(e,r)&&r!==o&&c(e,r,{get:()=>t[r],enumerable:!(i=u(t,r))||i.enumerable});return e};var v=(e,t,o)=>(o=e!=null?S(p(e)):{},n(t||!e||!e.__esModule?c(o,"default",{value:e,enumerable:!0}):o,e)),h=e=>n(c({},"__esModule",{value:!0}),e);var f={};m(f,{SelectedProductCollectionController:()=>P});module.exports=h(f);var d=v(require("../../../../utils/localsHelper"));class P{constructor(t,o){this.POST=async(t,o,i)=>{const{productCollection:r}=t.body,{dprUser:s,nestedBaseUrl:l}=d.default.getValues(o);await this.productCollectionStoreService.setSelectedProductCollectionId(s.id,r==="RESET"?void 0:r).then(()=>{o.redirect(`${l}/`)}).catch(()=>{o.redirect(`${l}/`)})};this.layoutPath=t,this.productCollectionStoreService=o.productCollectionStoreService}}0&&(module.exports={SelectedProductCollectionController});
2
+ //# sourceMappingURL=controller.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/dpr/routes/journeys/product-collection/selected/controller.ts"],
4
+ "sourcesContent": ["import { RequestHandler } from 'express'\nimport { ProductCollectionStoreService } from 'src/dpr/services/productCollection/productCollectionStoreService'\nimport LocalsHelper from '../../../../utils/localsHelper'\nimport { Services } from '../../../../types/Services'\n\nexport class SelectedProductCollectionController {\n layoutPath: string\n\n productCollectionStoreService: ProductCollectionStoreService\n\n constructor(layoutPath: string, services: Services) {\n this.layoutPath = layoutPath\n this.productCollectionStoreService = services.productCollectionStoreService\n }\n\n POST: RequestHandler = async (req, res, _next) => {\n const { productCollection } = req.body\n const { dprUser, nestedBaseUrl } = LocalsHelper.getValues(res)\n\n await this.productCollectionStoreService\n .setSelectedProductCollectionId(dprUser.id, productCollection === 'RESET' ? undefined : productCollection)\n .then(() => {\n res.redirect(`${nestedBaseUrl}/`)\n })\n .catch(() => {\n res.redirect(`${nestedBaseUrl}/`)\n })\n }\n}\n"],
5
+ "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yCAAAE,IAAA,eAAAC,EAAAH,GAEA,IAAAI,EAAyB,6CAGlB,MAAMF,CAAoC,CAK/C,YAAYG,EAAoBC,EAAoB,CAKpD,UAAuB,MAAOC,EAAKC,EAAKC,IAAU,CAChD,KAAM,CAAE,kBAAAC,CAAkB,EAAIH,EAAI,KAC5B,CAAE,QAAAI,EAAS,cAAAC,CAAc,EAAI,EAAAC,QAAa,UAAUL,CAAG,EAE7D,MAAM,KAAK,8BACR,+BAA+BG,EAAQ,GAAID,IAAsB,QAAU,OAAYA,CAAiB,EACxG,KAAK,IAAM,CACVF,EAAI,SAAS,GAAGI,CAAa,GAAG,CAClC,CAAC,EACA,MAAM,IAAM,CACXJ,EAAI,SAAS,GAAGI,CAAa,GAAG,CAClC,CAAC,CACL,EAhBE,KAAK,WAAaP,EAClB,KAAK,8BAAgCC,EAAS,6BAChD,CAeF",
6
+ "names": ["controller_exports", "__export", "SelectedProductCollectionController", "__toCommonJS", "import_localsHelper", "layoutPath", "services", "req", "res", "_next", "productCollection", "dprUser", "nestedBaseUrl", "LocalsHelper"]
7
+ }
@@ -0,0 +1,29 @@
1
+ import { RequestHandler } from 'express'
2
+ import { ProductCollectionStoreService } from 'src/dpr/services/productCollection/productCollectionStoreService'
3
+ import LocalsHelper from '../../../../utils/localsHelper'
4
+ import { Services } from '../../../../types/Services'
5
+
6
+ export class SelectedProductCollectionController {
7
+ layoutPath: string
8
+
9
+ productCollectionStoreService: ProductCollectionStoreService
10
+
11
+ constructor(layoutPath: string, services: Services) {
12
+ this.layoutPath = layoutPath
13
+ this.productCollectionStoreService = services.productCollectionStoreService
14
+ }
15
+
16
+ POST: RequestHandler = async (req, res, _next) => {
17
+ const { productCollection } = req.body
18
+ const { dprUser, nestedBaseUrl } = LocalsHelper.getValues(res)
19
+
20
+ await this.productCollectionStoreService
21
+ .setSelectedProductCollectionId(dprUser.id, productCollection === 'RESET' ? undefined : productCollection)
22
+ .then(() => {
23
+ res.redirect(`${nestedBaseUrl}/`)
24
+ })
25
+ .catch(() => {
26
+ res.redirect(`${nestedBaseUrl}/`)
27
+ })
28
+ }
29
+ }
@@ -0,0 +1,2 @@
1
+ var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var f=(o,r)=>{for(var t in r)s(o,t,{get:r[t],enumerable:!0})},v=(o,r,t,m)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of p(r))!u.call(o,e)&&e!==t&&s(o,e,{get:()=>r[e],enumerable:!(m=a(r,e))||m.enumerable});return o};var P=o=>v(s({},"__esModule",{value:!0}),o);var d={};f(d,{routes:()=>S});module.exports=P(d);var c=require("express"),i=require("./controller"),l=require("./validation"),n=require("../../../../validation/validate");const S=({layoutPath:o,services:r})=>{const t=(0,c.Router)({mergeParams:!0}),m=new i.SelectedProductCollectionController(o,r);return t.post("/",(0,n.validate)(l.schema),m.POST),t};0&&(module.exports={routes});
2
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/dpr/routes/journeys/product-collection/selected/routes.ts"],
4
+ "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Router } from 'express'\nimport { SelectedProductCollectionController } from './controller'\nimport { Services } from '../../../../types/Services'\nimport { schema } from './validation'\nimport { validate } from '../../../../validation/validate'\n\nexport const routes = ({ layoutPath, services }: { layoutPath: string; services: Services }) => {\n const router = Router({ mergeParams: true })\n const controller = new SelectedProductCollectionController(layoutPath, services)\n\n router.post('/', validate(schema), controller.POST)\n\n return router\n}\n"],
5
+ "mappings": "4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAAuB,mBACvBC,EAAoD,wBAEpDC,EAAuB,wBACvBC,EAAyB,2CAElB,MAAML,EAAS,CAAC,CAAE,WAAAM,EAAY,SAAAC,CAAS,IAAkD,CAC9F,MAAMC,KAAS,UAAO,CAAE,YAAa,EAAK,CAAC,EACrCC,EAAa,IAAI,sCAAoCH,EAAYC,CAAQ,EAE/E,OAAAC,EAAO,KAAK,OAAK,YAAS,QAAM,EAAGC,EAAW,IAAI,EAE3CD,CACT",
6
+ "names": ["routes_exports", "__export", "routes", "__toCommonJS", "import_express", "import_controller", "import_validation", "import_validate", "layoutPath", "services", "router", "controller"]
7
+ }
@@ -0,0 +1,15 @@
1
+ /* eslint-disable no-param-reassign */
2
+ import { Router } from 'express'
3
+ import { SelectedProductCollectionController } from './controller'
4
+ import { Services } from '../../../../types/Services'
5
+ import { schema } from './validation'
6
+ import { validate } from '../../../../validation/validate'
7
+
8
+ export const routes = ({ layoutPath, services }: { layoutPath: string; services: Services }) => {
9
+ const router = Router({ mergeParams: true })
10
+ const controller = new SelectedProductCollectionController(layoutPath, services)
11
+
12
+ router.post('/', validate(schema), controller.POST)
13
+
14
+ return router
15
+ }
@@ -0,0 +1,2 @@
1
+ var l=require("@networkMocks/definitionSummaries");context("Catalogue collections",()=>{const i="/embedded/platform/";describe("Check catalogue collections work properly",()=>{it("should allow the user to choose from any collection",()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubGetProductCollections"),cy.task("getProductCollection1"),cy.task("stubDefinitionUnprintable"),cy.task("stubDefinitionEmptyReport"),cy.task("stubDefinitionMockReportVariant35"),cy.visit(i),cy.findByRole("combobox",{name:/Your collections/}).should("be.visible").within(()=>cy.findAllByRole("option").should("have.length",3)),cy.findByDisplayValue(/Full catalogue/).should("be.visible");const o=l.summaries.reduce((e,t)=>e+(t.dashboards?.length??0)+t.variants.length,0);cy.findAllByText((e,t)=>new RegExp(`Showing ${o} of ${o} reports`).test(t.textContent)).should("be.visible"),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(e,t)=>t.textContent.includes("Interactive Report with async filters")}).within(()=>{cy.findByRole("button",{name:/Add bookmark/}).click()})}),cy.findByRole("combobox",{name:/Your collections/}).select("My Starter Pack");const n=[l.summaries[0],l.summaries[1]].reduce((e,t)=>e+(t.dashboards?.length??0)+t.variants.length,0);cy.findAllByText((e,t)=>new RegExp(`Showing ${n} of ${n} reports`).test(t.textContent)).should("be.visible"),cy.findByRole("combobox",{name:/Your collections/}).select("Full catalogue"),cy.findAllByText((e,t)=>new RegExp(`Showing ${o} of ${o} reports`).test(t.textContent)).should("be.visible")})})});
2
+ //# sourceMappingURL=tests.cy.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/dpr/routes/journeys/product-collection/selected/tests.cy.ts"],
4
+ "sourcesContent": ["import { summaries } from '@networkMocks/definitionSummaries'\n\ncontext('Catalogue collections', () => {\n const path = '/embedded/platform/'\n\n describe('Check catalogue collections work properly', () => {\n it('should allow the user to choose from any collection', () => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubGetProductCollections')\n cy.task('getProductCollection1')\n cy.task('stubDefinitionUnprintable')\n cy.task('stubDefinitionEmptyReport')\n cy.task('stubDefinitionMockReportVariant35')\n\n cy.visit(path)\n\n cy.findByRole('combobox', { name: /Your collections/ })\n .should('be.visible')\n .within(() => cy.findAllByRole('option').should('have.length', 3))\n cy.findByDisplayValue(/Full catalogue/).should('be.visible')\n\n const totalReports = summaries.reduce((acc, cur) => acc + (cur.dashboards?.length ?? 0) + cur.variants.length, 0)\n cy.findAllByText((_text, el) =>\n new RegExp(`Showing ${totalReports} of ${totalReports} reports`).test(el.textContent),\n ).should('be.visible')\n\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Interactive Report with async filters')\n },\n }).within(() => {\n cy.findByRole('button', { name: /Add bookmark/ }).click()\n })\n })\n\n cy.findByRole('combobox', { name: /Your collections/ }).select('My Starter Pack')\n const totalReportsStarterPack = [summaries[0], summaries[1]].reduce(\n (acc, cur) => acc + (cur.dashboards?.length ?? 0) + cur.variants.length,\n 0,\n )\n cy.findAllByText((_text, el) =>\n new RegExp(`Showing ${totalReportsStarterPack} of ${totalReportsStarterPack} reports`).test(el.textContent),\n ).should('be.visible')\n\n cy.findByRole('combobox', { name: /Your collections/ }).select('Full catalogue')\n cy.findAllByText((_text, el) =>\n new RegExp(`Showing ${totalReports} of ${totalReports} reports`).test(el.textContent),\n ).should('be.visible')\n })\n })\n})\n"],
5
+ "mappings": "AAAA,IAAAA,EAA0B,6CAE1B,QAAQ,wBAAyB,IAAM,CACrC,MAAMC,EAAO,sBAEb,SAAS,4CAA6C,IAAM,CAC1D,GAAG,sDAAuD,IAAM,CAC9D,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,iBAAiB,EACzB,GAAG,KAAK,2BAA2B,EACnC,GAAG,KAAK,uBAAuB,EAC/B,GAAG,KAAK,2BAA2B,EACnC,GAAG,KAAK,2BAA2B,EACnC,GAAG,KAAK,mCAAmC,EAE3C,GAAG,MAAMA,CAAI,EAEb,GAAG,WAAW,WAAY,CAAE,KAAM,kBAAmB,CAAC,EACnD,OAAO,YAAY,EACnB,OAAO,IAAM,GAAG,cAAc,QAAQ,EAAE,OAAO,cAAe,CAAC,CAAC,EACnE,GAAG,mBAAmB,gBAAgB,EAAE,OAAO,YAAY,EAE3D,MAAMC,EAAe,YAAU,OAAO,CAACC,EAAKC,IAAQD,GAAOC,EAAI,YAAY,QAAU,GAAKA,EAAI,SAAS,OAAQ,CAAC,EAChH,GAAG,cAAc,CAACC,EAAOC,IACvB,IAAI,OAAO,WAAWJ,CAAY,OAAOA,CAAY,UAAU,EAAE,KAAKI,EAAG,WAAW,CACtF,EAAE,OAAO,YAAY,EAErB,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACC,EAAGC,IACDA,EAAQ,YAAY,SAAS,uCAAuC,CAE/E,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,SAAU,CAAE,KAAM,cAAe,CAAC,EAAE,MAAM,CAC1D,CAAC,CACH,CAAC,EAED,GAAG,WAAW,WAAY,CAAE,KAAM,kBAAmB,CAAC,EAAE,OAAO,iBAAiB,EAChF,MAAMC,EAA0B,CAAC,YAAU,CAAC,EAAG,YAAU,CAAC,CAAC,EAAE,OAC3D,CAACN,EAAKC,IAAQD,GAAOC,EAAI,YAAY,QAAU,GAAKA,EAAI,SAAS,OACjE,CACF,EACA,GAAG,cAAc,CAACC,EAAOC,IACvB,IAAI,OAAO,WAAWG,CAAuB,OAAOA,CAAuB,UAAU,EAAE,KAAKH,EAAG,WAAW,CAC5G,EAAE,OAAO,YAAY,EAErB,GAAG,WAAW,WAAY,CAAE,KAAM,kBAAmB,CAAC,EAAE,OAAO,gBAAgB,EAC/E,GAAG,cAAc,CAACD,EAAOC,IACvB,IAAI,OAAO,WAAWJ,CAAY,OAAOA,CAAY,UAAU,EAAE,KAAKI,EAAG,WAAW,CACtF,EAAE,OAAO,YAAY,CACvB,CAAC,CACH,CAAC,CACH,CAAC",
6
+ "names": ["import_definitionSummaries", "path", "totalReports", "acc", "cur", "_text", "el", "_", "element", "totalReportsStarterPack"]
7
+ }
@@ -0,0 +1,54 @@
1
+ import { summaries } from '@networkMocks/definitionSummaries'
2
+
3
+ context('Catalogue collections', () => {
4
+ const path = '/embedded/platform/'
5
+
6
+ describe('Check catalogue collections work properly', () => {
7
+ it('should allow the user to choose from any collection', () => {
8
+ cy.task('resetStubs')
9
+ cy.task('resetRedis')
10
+ cy.task('stubDefinitions')
11
+ cy.task('stubGetProductCollections')
12
+ cy.task('getProductCollection1')
13
+ cy.task('stubDefinitionUnprintable')
14
+ cy.task('stubDefinitionEmptyReport')
15
+ cy.task('stubDefinitionMockReportVariant35')
16
+
17
+ cy.visit(path)
18
+
19
+ cy.findByRole('combobox', { name: /Your collections/ })
20
+ .should('be.visible')
21
+ .within(() => cy.findAllByRole('option').should('have.length', 3))
22
+ cy.findByDisplayValue(/Full catalogue/).should('be.visible')
23
+
24
+ const totalReports = summaries.reduce((acc, cur) => acc + (cur.dashboards?.length ?? 0) + cur.variants.length, 0)
25
+ cy.findAllByText((_text, el) =>
26
+ new RegExp(`Showing ${totalReports} of ${totalReports} reports`).test(el.textContent),
27
+ ).should('be.visible')
28
+
29
+ cy.findByLabelText(/Reports catalogue.*/i).within(() => {
30
+ cy.findByRole('row', {
31
+ name: (_, element) => {
32
+ return element.textContent.includes('Interactive Report with async filters')
33
+ },
34
+ }).within(() => {
35
+ cy.findByRole('button', { name: /Add bookmark/ }).click()
36
+ })
37
+ })
38
+
39
+ cy.findByRole('combobox', { name: /Your collections/ }).select('My Starter Pack')
40
+ const totalReportsStarterPack = [summaries[0], summaries[1]].reduce(
41
+ (acc, cur) => acc + (cur.dashboards?.length ?? 0) + cur.variants.length,
42
+ 0,
43
+ )
44
+ cy.findAllByText((_text, el) =>
45
+ new RegExp(`Showing ${totalReportsStarterPack} of ${totalReportsStarterPack} reports`).test(el.textContent),
46
+ ).should('be.visible')
47
+
48
+ cy.findByRole('combobox', { name: /Your collections/ }).select('Full catalogue')
49
+ cy.findAllByText((_text, el) =>
50
+ new RegExp(`Showing ${totalReports} of ${totalReports} reports`).test(el.textContent),
51
+ ).should('be.visible')
52
+ })
53
+ })
54
+ })
@@ -0,0 +1,2 @@
1
+ var n=Object.create;var r=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var h=(o,t)=>{for(var c in t)r(o,c,{get:t[c],enumerable:!0})},m=(o,t,c,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of d(t))!u.call(o,i)&&i!==c&&r(o,i,{get:()=>t[i],enumerable:!(l=s(t,i))||l.enumerable});return o};var x=(o,t,c)=>(c=o!=null?n(p(o)):{},m(t||!o||!o.__esModule?r(c,"default",{value:o,enumerable:!0}):c,o)),C=o=>m(r({},"__esModule",{value:!0}),o);var b={};h(b,{schema:()=>a});module.exports=C(b);var e=x(require("zod"));const a=e.default.object({productCollection:e.default.string().trim().min(1,"Product Collection ID should exist")});0&&(module.exports={schema});
2
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/dpr/routes/journeys/product-collection/selected/validation.ts"],
4
+ "sourcesContent": ["import z from 'zod'\n\nexport const schema = z.object({\n productCollection: z.string().trim().min(1, 'Product Collection ID should exist'),\n})\n"],
5
+ "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAc,kBAEP,MAAMF,EAAS,EAAAG,QAAE,OAAO,CAC7B,kBAAmB,EAAAA,QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAG,oCAAoC,CAClF,CAAC",
6
+ "names": ["validation_exports", "__export", "schema", "__toCommonJS", "import_zod", "z"]
7
+ }
@@ -0,0 +1,5 @@
1
+ import z from 'zod'
2
+
3
+ export const schema = z.object({
4
+ productCollection: z.string().trim().min(1, 'Product Collection ID should exist'),
5
+ })
@@ -1,2 +1,2 @@
1
- var e=require("../../../../../cypress-tests/cypressUtils");context("Request missing report",()=>{const t="/embedded/platform/";beforeEach(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubGetFeatureTestingMissing"),cy.visit(t),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(i,s)=>s.textContent.includes("Missing Report 1")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),(0,e.checkA11y)()}),describe("Request form page",()=>{it("should show the form, and on successful submission, redirect to the success submitted page",()=>{cy.task("stubMissingRequestSubmitSuccess"),cy.findByRole("textbox",{name:/Request this report/}).should("be.visible").type("abcd"),cy.findByRole("button",{name:/Submit/}).click(),cy.findByRole("heading",{name:/We've received your request for report Missing Report 1/}).should("be.visible"),(0,e.checkA11y)()}),it("should show the form, and on failed submission, redirect to the error page",()=>{cy.task("stubMissingRequestSubmitFail"),cy.findByRole("textbox",{name:/Request this report/}).type("a reason"),cy.findByRole("button",{name:/Submit/}).click(),cy.findByRole("heading",{name:/Sorry, there is a problem with the service/}).should("be.visible"),(0,e.checkA11y)()})})});
1
+ var e=require("../../../../../cypress-tests/cypressUtils");context("Request missing report",()=>{const t="/embedded/platform/";beforeEach(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubGetProductCollections"),cy.task("stubGetFeatureTestingMissing"),cy.visit(t),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(i,s)=>s.textContent.includes("Missing Report 1")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),(0,e.checkA11y)()}),describe("Request form page",()=>{it("should show the form, and on successful submission, redirect to the success submitted page",()=>{cy.task("stubMissingRequestSubmitSuccess"),cy.findByRole("textbox",{name:/Request this report/}).should("be.visible").type("abcd"),cy.findByRole("button",{name:/Submit/}).click(),cy.findByRole("heading",{name:/We've received your request for report Missing Report 1/}).should("be.visible"),(0,e.checkA11y)()}),it("should show the form, and on failed submission, redirect to the error page",()=>{cy.task("stubMissingRequestSubmitFail"),cy.findByRole("textbox",{name:/Request this report/}).type("a reason"),cy.findByRole("button",{name:/Submit/}).click(),cy.findByRole("heading",{name:/Sorry, there is a problem with the service/}).should("be.visible"),(0,e.checkA11y)()})})});
2
2
  //# sourceMappingURL=tests.cy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/routes/journeys/request-missing-report/tests.cy.ts"],
4
- "sourcesContent": ["import { checkA11y } from '../../../../../cypress-tests/cypressUtils'\n\ncontext('Request missing report', () => {\n const path = '/embedded/platform/'\n\n beforeEach(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubGetFeatureTestingMissing')\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Missing Report 1')\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n checkA11y()\n })\n\n describe('Request form page', () => {\n it('should show the form, and on successful submission, redirect to the success submitted page', () => {\n cy.task('stubMissingRequestSubmitSuccess')\n cy.findByRole('textbox', { name: /Request this report/ })\n .should('be.visible')\n .type('abcd')\n cy.findByRole('button', { name: /Submit/ }).click()\n cy.findByRole('heading', { name: /We've received your request for report Missing Report 1/ }).should('be.visible')\n checkA11y()\n })\n\n it('should show the form, and on failed submission, redirect to the error page', () => {\n cy.task('stubMissingRequestSubmitFail')\n cy.findByRole('textbox', { name: /Request this report/ }).type('a reason')\n cy.findByRole('button', { name: /Submit/ }).click()\n cy.findByRole('heading', { name: /Sorry, there is a problem with the service/ }).should('be.visible')\n checkA11y()\n })\n })\n})\n"],
5
- "mappings": "AAAA,IAAAA,EAA0B,qDAE1B,QAAQ,yBAA0B,IAAM,CACtC,MAAMC,EAAO,sBAEb,WAAW,IAAM,CACf,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,iBAAiB,EACzB,GAAG,KAAK,8BAA8B,EACtC,GAAG,MAAMA,CAAI,EACb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACC,EAAGC,IACDA,EAAQ,YAAY,SAAS,kBAAkB,CAE1D,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,CAC1D,CAAC,CACH,CAAC,KACD,aAAU,CACZ,CAAC,EAED,SAAS,oBAAqB,IAAM,CAClC,GAAG,6FAA8F,IAAM,CACrG,GAAG,KAAK,iCAAiC,EACzC,GAAG,WAAW,UAAW,CAAE,KAAM,qBAAsB,CAAC,EACrD,OAAO,YAAY,EACnB,KAAK,MAAM,EACd,GAAG,WAAW,SAAU,CAAE,KAAM,QAAS,CAAC,EAAE,MAAM,EAClD,GAAG,WAAW,UAAW,CAAE,KAAM,yDAA0D,CAAC,EAAE,OAAO,YAAY,KACjH,aAAU,CACZ,CAAC,EAED,GAAG,6EAA8E,IAAM,CACrF,GAAG,KAAK,8BAA8B,EACtC,GAAG,WAAW,UAAW,CAAE,KAAM,qBAAsB,CAAC,EAAE,KAAK,UAAU,EACzE,GAAG,WAAW,SAAU,CAAE,KAAM,QAAS,CAAC,EAAE,MAAM,EAClD,GAAG,WAAW,UAAW,CAAE,KAAM,4CAA6C,CAAC,EAAE,OAAO,YAAY,KACpG,aAAU,CACZ,CAAC,CACH,CAAC,CACH,CAAC",
4
+ "sourcesContent": ["import { checkA11y } from '../../../../../cypress-tests/cypressUtils'\n\ncontext('Request missing report', () => {\n const path = '/embedded/platform/'\n\n beforeEach(() => {\n cy.task('resetStubs')\n cy.task('resetRedis')\n cy.task('stubDefinitions')\n cy.task('stubGetProductCollections')\n cy.task('stubGetFeatureTestingMissing')\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return element.textContent.includes('Missing Report 1')\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n checkA11y()\n })\n\n describe('Request form page', () => {\n it('should show the form, and on successful submission, redirect to the success submitted page', () => {\n cy.task('stubMissingRequestSubmitSuccess')\n cy.findByRole('textbox', { name: /Request this report/ })\n .should('be.visible')\n .type('abcd')\n cy.findByRole('button', { name: /Submit/ }).click()\n cy.findByRole('heading', { name: /We've received your request for report Missing Report 1/ }).should('be.visible')\n checkA11y()\n })\n\n it('should show the form, and on failed submission, redirect to the error page', () => {\n cy.task('stubMissingRequestSubmitFail')\n cy.findByRole('textbox', { name: /Request this report/ }).type('a reason')\n cy.findByRole('button', { name: /Submit/ }).click()\n cy.findByRole('heading', { name: /Sorry, there is a problem with the service/ }).should('be.visible')\n checkA11y()\n })\n })\n})\n"],
5
+ "mappings": "AAAA,IAAAA,EAA0B,qDAE1B,QAAQ,yBAA0B,IAAM,CACtC,MAAMC,EAAO,sBAEb,WAAW,IAAM,CACf,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,YAAY,EACpB,GAAG,KAAK,iBAAiB,EACzB,GAAG,KAAK,2BAA2B,EACnC,GAAG,KAAK,8BAA8B,EACtC,GAAG,MAAMA,CAAI,EACb,GAAG,gBAAgB,sBAAsB,EAAE,OAAO,IAAM,CACtD,GAAG,WAAW,MAAO,CACnB,KAAM,CAACC,EAAGC,IACDA,EAAQ,YAAY,SAAS,kBAAkB,CAE1D,CAAC,EAAE,OAAO,IAAM,CACd,GAAG,WAAW,OAAQ,CAAE,KAAM,gBAAiB,CAAC,EAAE,MAAM,CAC1D,CAAC,CACH,CAAC,KACD,aAAU,CACZ,CAAC,EAED,SAAS,oBAAqB,IAAM,CAClC,GAAG,6FAA8F,IAAM,CACrG,GAAG,KAAK,iCAAiC,EACzC,GAAG,WAAW,UAAW,CAAE,KAAM,qBAAsB,CAAC,EACrD,OAAO,YAAY,EACnB,KAAK,MAAM,EACd,GAAG,WAAW,SAAU,CAAE,KAAM,QAAS,CAAC,EAAE,MAAM,EAClD,GAAG,WAAW,UAAW,CAAE,KAAM,yDAA0D,CAAC,EAAE,OAAO,YAAY,KACjH,aAAU,CACZ,CAAC,EAED,GAAG,6EAA8E,IAAM,CACrF,GAAG,KAAK,8BAA8B,EACtC,GAAG,WAAW,UAAW,CAAE,KAAM,qBAAsB,CAAC,EAAE,KAAK,UAAU,EACzE,GAAG,WAAW,SAAU,CAAE,KAAM,QAAS,CAAC,EAAE,MAAM,EAClD,GAAG,WAAW,UAAW,CAAE,KAAM,4CAA6C,CAAC,EAAE,OAAO,YAAY,KACpG,aAAU,CACZ,CAAC,CACH,CAAC,CACH,CAAC",
6
6
  "names": ["import_cypressUtils", "path", "_", "element"]
7
7
  }
@@ -7,6 +7,7 @@ context('Request missing report', () => {
7
7
  cy.task('resetStubs')
8
8
  cy.task('resetRedis')
9
9
  cy.task('stubDefinitions')
10
+ cy.task('stubGetProductCollections')
10
11
  cy.task('stubGetFeatureTestingMissing')
11
12
  cy.visit(path)
12
13
  cy.findByLabelText(/Reports catalogue.*/i).within(() => {
@@ -1,2 +1,2 @@
1
- var d=Object.create;var u=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var r=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var h=(e,i,s,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of a(i))!b.call(e,o)&&o!==s&&u(e,o,{get:()=>i[o],enumerable:!(t=y(i,o))||t.enumerable});return e};var R=(e,i,s)=>(s=e!=null?d(r(e)):{},h(i||!e||!e.__esModule?u(s,"default",{value:e,enumerable:!0}):s,e));var c=require("cypress-tests/cypressUtils"),n=R(require("dayjs")),l=require("test-app/routes/integrationTests/redisStateTestUtils");context("Request status",()=>{const e="/embedded/platform/";beforeEach(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubViewAsyncReportingResults"),cy.task("stubRequestSuccessReportTablesCount"),cy.task("stubRequestSuccessResult20WithDelay")}),describe("post request",()=>{const i="";it("should show the status pages",()=>{cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>t.textContent.includes("Successful Report")&&t.textContent.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),(0,c.checkA11y)(),cy.task("stubReportsPickedStatus"),cy.findByText(/picked/i).should("be.visible"),(0,c.checkA11y)(),cy.task("stubReportsStartedStatus"),cy.findByText(/started/i).should("be.visible"),(0,c.checkA11y)(),cy.task("stubReportsFinishedStatus"),cy.findAllByRole("heading",{name:/successful report/i}).should("be.visible")}),it("should timeout",()=>{cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>t.textContent.includes("Successful Report")&&t.textContent.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),(0,c.checkA11y)(),cy.task("stubReportsPickedStatus"),cy.findByText("PICKED").should("be.visible"),(0,l.getRedisState)().then(s=>{const t={...s.body};t.requestedReports[0].timestamp.requested=(0,n.default)(s.body.requestedReports[0].timestamp.requested).add(-1,"days").toDate(),(0,l.setRedisState)(t)}),cy.findByText(/Request taking too long/).should("be.visible"),(0,c.checkA11y)()}),describe("failure status pages",()=>{beforeEach(()=>{cy.task("resetRedis"),cy.task("stubReportsPickedStatus"),cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>t.textContent.includes("Successful Report")&&t.textContent.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),cy.findByText(/submitted/i).should("be.visible"),cy.findByText(/picked/i).should("be.visible")}),it("should show the aborted status page",()=>{cy.task("stubReportsAbortedStatus"),cy.findByText(/aborted/i).should("be.visible"),cy.injectAxe(),cy.checkA11y()}),it("should show the expired status page",()=>{cy.task("stubReportsExpiredStatus"),cy.findByText(/expired/i).should("be.visible"),cy.injectAxe(),cy.checkA11y()}),it("should show the failed status page",()=>{cy.task("stubReportsFailedStatus"),cy.findByText(/your report has failed to generate/i).should("be.visible"),cy.findByRole("group").contains("Show full error").should("be.visible"),cy.findByText(/Show full error/).click(),cy.findByText(/a developer message goes here/).should("be.visible"),cy.findAllByRole("list").contains("Report ID: request-examples").should("be.visible"),cy.findAllByRole("list").contains(`Execution ID: ${i}`).should("be.visible"),cy.findAllByRole("list").contains("Table ID: tblId_").should("be.visible"),cy.injectAxe(),cy.checkA11y()})})})});
1
+ var d=Object.create;var u=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var r=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var h=(e,i,s,t)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of a(i))!b.call(e,o)&&o!==s&&u(e,o,{get:()=>i[o],enumerable:!(t=y(i,o))||t.enumerable});return e};var R=(e,i,s)=>(s=e!=null?d(r(e)):{},h(i||!e||!e.__esModule?u(s,"default",{value:e,enumerable:!0}):s,e));var c=require("cypress-tests/cypressUtils"),n=R(require("dayjs")),l=require("test-app/routes/integrationTests/redisStateTestUtils");context("Request status",()=>{const e="/embedded/platform/";beforeEach(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubGetProductCollections"),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubViewAsyncReportingResults"),cy.task("stubRequestSuccessReportTablesCount"),cy.task("stubRequestSuccessResult20WithDelay")}),describe("post request",()=>{const i="";it("should show the status pages",()=>{cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>t.textContent.includes("Successful Report")&&t.textContent.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),(0,c.checkA11y)(),cy.task("stubReportsPickedStatus"),cy.findByText(/picked/i).should("be.visible"),(0,c.checkA11y)(),cy.task("stubReportsStartedStatus"),cy.findByText(/started/i).should("be.visible"),(0,c.checkA11y)(),cy.task("stubReportsFinishedStatus"),cy.findAllByRole("heading",{name:/successful report/i}).should("be.visible")}),it("should timeout",()=>{cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>t.textContent.includes("Successful Report")&&t.textContent.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),(0,c.checkA11y)(),cy.task("stubReportsPickedStatus"),cy.findByText("PICKED").should("be.visible"),(0,l.getRedisState)().then(s=>{const t={...s.body};t.requestedReports[0].timestamp.requested=(0,n.default)(s.body.requestedReports[0].timestamp.requested).add(-1,"days").toDate(),(0,l.setRedisState)(t)}),cy.findByText(/Request taking too long/).should("be.visible"),(0,c.checkA11y)()}),describe("failure status pages",()=>{beforeEach(()=>{cy.task("resetRedis"),cy.task("stubReportsPickedStatus"),cy.visit(e),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,t)=>t.textContent.includes("Successful Report")&&t.textContent.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("button",{name:/Request/}).click(),cy.findByText(/submitted/i).should("be.visible"),cy.findByText(/picked/i).should("be.visible")}),it("should show the aborted status page",()=>{cy.task("stubReportsAbortedStatus"),cy.findByText(/aborted/i).should("be.visible"),cy.injectAxe(),cy.checkA11y()}),it("should show the expired status page",()=>{cy.task("stubReportsExpiredStatus"),cy.findByText(/expired/i).should("be.visible"),cy.injectAxe(),cy.checkA11y()}),it("should show the failed status page",()=>{cy.task("stubReportsFailedStatus"),cy.findByText(/your report has failed to generate/i).should("be.visible"),cy.findByRole("group").contains("Show full error").should("be.visible"),cy.findByText(/Show full error/).click(),cy.findByText(/a developer message goes here/).should("be.visible"),cy.findAllByRole("list").contains("Report ID: request-examples").should("be.visible"),cy.findAllByRole("list").contains(`Execution ID: ${i}`).should("be.visible"),cy.findAllByRole("list").contains("Table ID: tblId_").should("be.visible"),cy.injectAxe(),cy.checkA11y()})})})});
2
2
  //# sourceMappingURL=tests.cy.js.map