@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.22.2 → 4.22.3

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 (44) hide show
  1. package/dpr/DprPollingStatusClass.mjs +2 -2
  2. package/dpr/components/_async/async-filters-form/types.d.js +1 -1
  3. package/dpr/components/_async/async-filters-form/types.d.js.map +1 -1
  4. package/dpr/components/_async/async-filters-form/types.d.ts +0 -1
  5. package/dpr/components/_catalogue/catalogue-list/utils.js +1 -1
  6. package/dpr/components/_catalogue/catalogue-list/utils.js.map +3 -3
  7. package/dpr/components/_catalogue/catalogue-list/utils.ts +2 -1
  8. package/dpr/components/_charts/utils.test.ts +0 -3
  9. package/dpr/components/bookmark-toggle/clientClass.mjs +3 -4
  10. package/dpr/components/bookmark-toggle/view.njk +1 -1
  11. package/dpr/components/user-reports/bookmarks/utils.js +1 -1
  12. package/dpr/components/user-reports/bookmarks/utils.js.map +3 -3
  13. package/dpr/components/user-reports/bookmarks/utils.ts +13 -3
  14. package/dpr/components/user-reports/requested/clientClass.mjs +18 -6
  15. package/dpr/components/user-reports/utils.js.map +2 -2
  16. package/dpr/components/user-reports/utils.test.ts +24 -24
  17. package/dpr/components/user-reports/utils.ts +2 -0
  18. package/dpr/components/user-reports/viewed/clientClass.mjs +3 -2
  19. package/dpr/middleware/setUpDprResources.js +1 -1
  20. package/dpr/middleware/setUpDprResources.js.map +3 -3
  21. package/dpr/middleware/setUpDprResources.test.ts +1 -0
  22. package/dpr/middleware/setUpDprResources.ts +3 -1
  23. package/dpr/routes/journeys/my-reports/bookmarks/controller.js +1 -1
  24. package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +3 -3
  25. package/dpr/routes/journeys/my-reports/bookmarks/controller.ts +6 -9
  26. package/dpr/routes/journeys/my-reports/bookmarks/routes.js +1 -1
  27. package/dpr/routes/journeys/my-reports/bookmarks/routes.js.map +2 -2
  28. package/dpr/routes/journeys/my-reports/bookmarks/routes.ts +0 -3
  29. package/dpr/routes/journeys/my-reports/bookmarks/service.js +3 -3
  30. package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +3 -3
  31. package/dpr/routes/journeys/my-reports/bookmarks/service.ts +4 -1
  32. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +1 -1
  33. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +2 -2
  34. package/dpr/routes/journeys/my-reports/recently-viewed/controller.ts +1 -0
  35. package/dpr/routes/journeys/my-reports/requested-reports/service.js +1 -1
  36. package/dpr/routes/journeys/my-reports/requested-reports/service.js.map +3 -3
  37. package/dpr/routes/journeys/my-reports/requested-reports/service.ts +37 -1
  38. package/dpr/routes/journeys/request-report/filters/utils.js +1 -1
  39. package/dpr/routes/journeys/request-report/filters/utils.js.map +2 -2
  40. package/dpr/routes/journeys/request-report/filters/utils.ts +3 -1
  41. package/dpr/routes/journeys/request-report/tests.cy.js +1 -1
  42. package/dpr/routes/journeys/request-report/tests.cy.js.map +2 -2
  43. package/dpr/routes/journeys/request-report/tests.cy.ts +22 -1
  44. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/routes/journeys/request-report/filters/utils.ts"],
4
- "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Request, Response, NextFunction } from 'express'\n\n// Utils\nimport { defaultFilterValue } from '../../../../utils/Personalisation/types'\nimport FiltersFormUtils from '../../../../components/_async/async-filters-form/utils'\nimport LocalsHelper from '../../../../utils/localsHelper'\nimport FiltersUtils from '../../../../components/_filters/utils'\nimport { removeDuplicates } from '../../../../utils/reportStoreHelper'\nimport UserStoreItemBuilder from '../../../../utils/UserStoreItemBuilder'\n\n// Types\nimport type ReportingService from '../../../../services/reportingService'\nimport { ReportType, RequestFormData, RequestStatus } from '../../../../types/UserReports'\nimport type { ExecutionData, ChildReportExecutionData } from '../../../../types/ExecutionData'\nimport type { AsyncReportUtilsParams, RequestDataResult, RequestReportData } from '../../../../types/AsyncReportUtils'\nimport type {\n RenderFiltersReturnValue,\n SetQueryFromFiltersResult,\n} from '../../../../components/_async/async-filters-form/types'\nimport type { components } from '../../../../types/api'\nimport type { Services } from '../../../../types/Services'\nimport type DashboardService from '../../../../services/dashboardService'\nimport PersonalistionUtils from '../../../../utils/Personalisation/personalisationUtils'\nimport { FiltersType } from '../../../../components/_filters/filtersTypeEnum'\n\n/**\n * Updates the store with the request details\n *\n * @param {Request} req\n * @param {Response} res\n * @param {Services} services\n * @param {SetQueryFromFiltersResult} querySummaryData\n * @param {string} executionData\n * @return {*} {Promise<string>}\n */\nexport const updateStore = async ({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n}: {\n req: Request\n res: Response\n services: Services\n queryData?: SetQueryFromFiltersResult | undefined\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n}): Promise<void> => {\n const { search, id, type } = req.body\n const { dprUser, definitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n\n await removeDuplicates({ storeService: services.requestedReportService, userId: dprUser.id, id, search })\n await removeDuplicates({ storeService: services.recentlyViewedService, userId: dprUser.id, id, search })\n\n const requestFormData: RequestFormData = req.body\n const reportData = {\n type: requestFormData.type as ReportType,\n reportId: requestFormData.reportId,\n reportName: requestFormData.reportName,\n description: requestFormData.description,\n id: requestFormData.id,\n name: requestFormData.name,\n }\n\n let requestedReportData\n switch (type) {\n case ReportType.REPORT:\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addSortData(queryData?.sortData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .build()\n break\n case ReportType.DASHBOARD: {\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .addMetrics(JSON.parse(req.body.sections))\n .build()\n break\n }\n default:\n break\n }\n\n if (requestedReportData) await services.requestedReportService.addReport(dprUser.id, requestedReportData)\n}\n\nasync function requestChildReports(\n childVariants: Array<components['schemas']['ChildVariantDefinition']>,\n reportingService: ReportingService,\n token: string,\n reportId: string,\n queryData?: SetQueryFromFiltersResult,\n dataProductDefinitionsPath?: string,\n): Promise<Array<ChildReportExecutionData>> {\n return Promise.all(\n childVariants.map((childVariant) =>\n reportingService\n .requestAsyncReport(token, reportId, childVariant.id, {\n ...(queryData && queryData.query),\n ...(dataProductDefinitionsPath && { dataProductDefinitionsPath }),\n })\n .then((response) => {\n const { executionId, tableId } = response\n if (!executionId || !tableId) {\n throw new Error('requestChildReports: No execution of tableId in response')\n }\n return { executionId, tableId, variantId: childVariant.id }\n }),\n ),\n )\n}\n\nconst requestProduct = async ({\n req,\n res,\n token,\n dashboardService,\n reportingService,\n}: {\n req: Request\n res: Response\n token: string\n dashboardService: DashboardService\n reportingService: ReportingService\n}): Promise<{\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n queryData?: SetQueryFromFiltersResult | undefined\n}> => {\n const { definitionsPath: dataProductDefinitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n const { reportId, id, type } = req.body\n\n let fields: components['schemas']['FieldDefinition'][]\n let queryData\n let executionId\n let tableId\n let definition\n let childVariants: components['schemas']['ChildVariantDefinition'][] = []\n\n if (type === ReportType.REPORT) {\n definition = await reportingService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition?.variant.specification?.fields || []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await reportingService.requestAsyncReport(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n childVariants = definition.variant.childVariants ?? []\n }\n\n if (type === ReportType.DASHBOARD) {\n definition = await dashboardService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition?.filterFields || []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await dashboardService.requestAsyncDashboard(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n }\n\n const childExecutionData = await requestChildReports(\n childVariants,\n reportingService,\n token,\n reportId,\n queryData,\n dataProductDefinitionsPath,\n )\n\n const executionData = {\n executionId,\n tableId,\n ...(dpdPathFromQuery && { dataProductDefinitionsPath }),\n }\n\n return {\n executionData,\n childExecutionData,\n queryData,\n }\n}\n\nconst renderDashboardRequestData = async ({\n token,\n reportId,\n definitionPath,\n services,\n definition,\n}: {\n token: string\n reportId: string\n definitionPath: string\n services: Services\n definition: components['schemas']['DashboardDefinition']\n}) => {\n const productDefinitions = await services.reportingService.getDefinitions(token, definitionPath)\n const productDefinition = productDefinitions.find(\n (def: components['schemas']['ReportDefinitionSummary']) => def.id === reportId,\n )\n const reportName = productDefinition?.name\n const { name, description, sections, filterFields: fields } = definition\n\n return {\n reportName,\n name,\n description,\n sections: sections || [],\n fields: fields || [],\n }\n}\n\nconst renderReportRequestData = async (definition: components['schemas']['SingleVariantReportDefinition']) => {\n return {\n definition,\n reportName: definition.name,\n name: definition.variant.name,\n description: definition.variant.description || definition.description,\n template: definition.variant.specification,\n fields: definition?.variant?.specification?.fields || [],\n interactive: definition?.variant?.interactive,\n }\n}\n\nexport const getDefintionByType = async (req: Request, res: Response, _next: NextFunction, services: Services) => {\n const { token, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, variantId, type } = req.params\n\n const service = type === ReportType.REPORT ? services.reportingService : services.dashboardService\n const definition = await service.getDefinition(token, reportId, variantId || id, definitionsPath)\n\n return definition\n}\n\nconst getFilterData = async (\n req: Request,\n res: Response,\n fields: components['schemas']['FieldDefinition'][],\n interactive: boolean,\n services: Services,\n userId: string,\n) => {\n const { reportId, id } = req.params\n\n // 1. Get filters from definition with default values\n let filtersData = <RenderFiltersReturnValue>await FiltersFormUtils.renderFilters(fields, interactive)\n\n // 2. Update filter values with user context values. eg. establishmnent code\n filtersData.filters = PersonalistionUtils.setUserContextDefaults(res, filtersData.filters)\n\n // 3. Update filter values with saved defaults\n let defaultFilterValues\n if (res.locals['saveDefaultsEnabled']) {\n defaultFilterValues = await services.defaultFilterValuesService.get(userId, reportId, id, FiltersType.REQUEST)\n }\n if (defaultFilterValues) {\n filtersData = PersonalistionUtils.setFilterValuesFromSavedDefaults(\n filtersData.filters,\n filtersData.sortBy || [],\n defaultFilterValues,\n )\n }\n\n // 4. Overwrite filter values with query param values\n filtersData.filters = FiltersUtils.setFilterValuesFromRequest(filtersData.filters, req)\n\n return { filtersData, defaultFilterValues }\n}\n\n/**\n * Sends the request for the async report\n *\n * @param {AsyncReportUtilsParams} { req, res, services }\n * @return {*}\n */\nexport const request = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token } = LocalsHelper.getValues(res)\n const requestArgs = { req, res, token }\n\n const { executionData, queryData, childExecutionData } = await requestProduct({\n ...requestArgs,\n dashboardService: services.dashboardService,\n reportingService: services.reportingService,\n })\n\n if (executionData) {\n await updateStore({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n })\n }\n\n return executionData\n}\n\nexport const cancelRequest = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token, dprUser, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, executionId, type } = req.params\n\n let service: ReportingService | DashboardService = services.reportingService\n if (type === ReportType.REPORT) service = services.reportingService\n if (type === ReportType.DASHBOARD) service = services.dashboardService\n\n const response = await service.cancelAsyncRequest(token, reportId, id, executionId, definitionsPath)\n\n if (response && response['cancellationSucceeded']) {\n await services.requestedReportService.updateStatus(executionId, dprUser.id, RequestStatus.ABORTED)\n }\n}\n\n/**\n * Returns the data required for rendering the async filters component\n *\n * @param {AsyncReportUtilsParams} { req, res, dataSources }\n * @return {*}\n */\nexport const renderRequest = async ({\n req,\n res,\n services,\n next,\n}: {\n req: Request\n res: Response\n next: NextFunction\n services: Services\n}): Promise<RequestDataResult | boolean> => {\n try {\n const { token, csrfToken, definitionsPath: definitionPath, dpdPathFromQuery, dprUser } = LocalsHelper.getValues(res)\n const { reportId, type, id } = req.params\n const { definition } = res.locals\n const defaultsSaved = <string>req.query['defaultsSaved']\n\n const definitionApiArgs = { token, reportId, definitionPath, services }\n\n let name\n let reportName\n let description\n let template\n let fields: components['schemas']['FieldDefinition'][] = []\n let sections\n let interactive\n let filtersData\n let defaultFilterValues: defaultFilterValue[] = []\n\n if (type === ReportType.REPORT) {\n ;({ name, reportName, description, fields, interactive } = await renderReportRequestData(definition))\n }\n\n if (type === ReportType.DASHBOARD) {\n ;({ name, reportName, description, sections, fields } = await renderDashboardRequestData({\n ...definitionApiArgs,\n definition,\n }))\n }\n\n if (fields) {\n const filterData = await getFilterData(req, res, fields, interactive || false, services, dprUser.id)\n defaultFilterValues = filterData.defaultFilterValues || defaultFilterValues\n filtersData = filterData.filtersData\n }\n\n const reportData: RequestReportData = {\n reportName,\n name,\n description,\n reportId,\n id,\n ...(dpdPathFromQuery && { definitionPath }),\n csrfToken,\n template,\n sections,\n hasDefaults: defaultFilterValues?.length > 0,\n defaultsSaved,\n type: type as ReportType,\n saveDefaultsEnabled: res.locals['saveDefaultsEnabled'],\n }\n\n return {\n title: `Request ${type}`,\n filtersDescription: `Customise your ${type} using the filters below and submit your request.`,\n filtersData,\n reportData,\n }\n } catch (error) {\n next(error)\n return false\n }\n}\n\nexport const getFiltersFromReqBody = (req: Request) => {\n return Object.keys(req.body)\n .filter((attr) => attr.includes('filters.'))\n .filter((attr) => !!req.body[attr])\n .map((attr) => {\n return { name: attr, value: req.body[attr] }\n })\n}\n\nexport default {\n request,\n cancelRequest,\n renderRequest,\n getFiltersFromReqBody,\n getDefintionByType,\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Request, Response, NextFunction } from 'express'\n\n// Utils\nimport { defaultFilterValue } from '../../../../utils/Personalisation/types'\nimport FiltersFormUtils from '../../../../components/_async/async-filters-form/utils'\nimport LocalsHelper from '../../../../utils/localsHelper'\nimport FiltersUtils from '../../../../components/_filters/utils'\nimport { removeDuplicates } from '../../../../utils/reportStoreHelper'\nimport UserStoreItemBuilder from '../../../../utils/UserStoreItemBuilder'\n\n// Types\nimport type ReportingService from '../../../../services/reportingService'\nimport { ReportType, RequestFormData, RequestStatus } from '../../../../types/UserReports'\nimport type { ExecutionData, ChildReportExecutionData } from '../../../../types/ExecutionData'\nimport type { AsyncReportUtilsParams, RequestDataResult, RequestReportData } from '../../../../types/AsyncReportUtils'\nimport type {\n RenderFiltersReturnValue,\n SetQueryFromFiltersResult,\n} from '../../../../components/_async/async-filters-form/types'\nimport type { components } from '../../../../types/api'\nimport type { Services } from '../../../../types/Services'\nimport type DashboardService from '../../../../services/dashboardService'\nimport PersonalistionUtils from '../../../../utils/Personalisation/personalisationUtils'\nimport { FiltersType } from '../../../../components/_filters/filtersTypeEnum'\n\n/**\n * Updates the store with the request details\n *\n * @param {Request} req\n * @param {Response} res\n * @param {Services} services\n * @param {SetQueryFromFiltersResult} querySummaryData\n * @param {string} executionData\n * @return {*} {Promise<string>}\n */\nexport const updateStore = async ({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n}: {\n req: Request\n res: Response\n services: Services\n queryData?: SetQueryFromFiltersResult | undefined\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n}): Promise<void> => {\n const { search, id, type } = req.body\n const { dprUser, definitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n\n await removeDuplicates({ storeService: services.requestedReportService, userId: dprUser.id, id, search })\n await removeDuplicates({ storeService: services.recentlyViewedService, userId: dprUser.id, id, search })\n\n const requestFormData: RequestFormData = req.body\n const reportData = {\n type: requestFormData.type as ReportType,\n reportId: requestFormData.reportId,\n reportName: requestFormData.reportName,\n description: requestFormData.description,\n id: requestFormData.id,\n name: requestFormData.name,\n }\n\n let requestedReportData\n switch (type) {\n case ReportType.REPORT:\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addSortData(queryData?.sortData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .build()\n break\n case ReportType.DASHBOARD: {\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .addMetrics(JSON.parse(req.body.sections))\n .build()\n break\n }\n default:\n break\n }\n\n if (requestedReportData) await services.requestedReportService.addReport(dprUser.id, requestedReportData)\n}\n\nasync function requestChildReports(\n childVariants: Array<components['schemas']['ChildVariantDefinition']>,\n reportingService: ReportingService,\n token: string,\n reportId: string,\n queryData?: SetQueryFromFiltersResult,\n dataProductDefinitionsPath?: string,\n): Promise<Array<ChildReportExecutionData>> {\n return Promise.all(\n childVariants.map((childVariant) =>\n reportingService\n .requestAsyncReport(token, reportId, childVariant.id, {\n ...(queryData && queryData.query),\n ...(dataProductDefinitionsPath && { dataProductDefinitionsPath }),\n })\n .then((response) => {\n const { executionId, tableId } = response\n if (!executionId || !tableId) {\n throw new Error('requestChildReports: No execution of tableId in response')\n }\n return { executionId, tableId, variantId: childVariant.id }\n }),\n ),\n )\n}\n\nconst requestProduct = async ({\n req,\n res,\n token,\n dashboardService,\n reportingService,\n}: {\n req: Request\n res: Response\n token: string\n dashboardService: DashboardService\n reportingService: ReportingService\n}): Promise<{\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n queryData?: SetQueryFromFiltersResult | undefined\n}> => {\n const { definitionsPath: dataProductDefinitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n const { reportId, id, type } = req.body\n\n let fields: components['schemas']['FieldDefinition'][]\n let queryData\n let executionId\n let tableId\n let definition\n let childVariants: components['schemas']['ChildVariantDefinition'][] = []\n\n if (type === ReportType.REPORT) {\n definition = await reportingService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition?.variant.specification?.fields || []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await reportingService.requestAsyncReport(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n childVariants = definition.variant.childVariants ?? []\n }\n\n if (type === ReportType.DASHBOARD) {\n definition = await dashboardService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition?.filterFields || []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await dashboardService.requestAsyncDashboard(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n }\n\n const childExecutionData = await requestChildReports(\n childVariants,\n reportingService,\n token,\n reportId,\n queryData,\n dataProductDefinitionsPath,\n )\n\n const executionData = {\n executionId,\n tableId,\n ...(dpdPathFromQuery && { dataProductDefinitionsPath }),\n }\n\n return {\n executionData,\n childExecutionData,\n queryData,\n }\n}\n\nconst renderDashboardRequestData = async ({\n token,\n reportId,\n definitionPath,\n services,\n definition,\n}: {\n token: string\n reportId: string\n definitionPath: string\n services: Services\n definition: components['schemas']['DashboardDefinition']\n}) => {\n const productDefinitions = await services.reportingService.getDefinitions(token, definitionPath)\n const productDefinition = productDefinitions.find(\n (def: components['schemas']['ReportDefinitionSummary']) => def.id === reportId,\n )\n const reportName = productDefinition?.name\n const { name, description, sections, filterFields: fields } = definition\n\n return {\n reportName,\n name,\n description,\n sections: sections || [],\n fields: fields || [],\n }\n}\n\nconst renderReportRequestData = async (definition: components['schemas']['SingleVariantReportDefinition']) => {\n return {\n definition,\n reportName: definition.name,\n name: definition.variant.name,\n description: definition.variant.description || definition.description,\n template: definition.variant.specification,\n fields: definition?.variant?.specification?.fields || [],\n interactive: definition?.variant?.interactive,\n }\n}\n\nexport const getDefintionByType = async (req: Request, res: Response, _next: NextFunction, services: Services) => {\n const { token, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, variantId, type } = req.params\n\n const service = type === ReportType.REPORT ? services.reportingService : services.dashboardService\n const definition = await service.getDefinition(token, reportId, variantId || id, definitionsPath)\n\n return definition\n}\n\nconst getFilterData = async (\n req: Request,\n res: Response,\n fields: components['schemas']['FieldDefinition'][],\n interactive: boolean,\n services: Services,\n userId: string,\n) => {\n const { reportId, id } = req.params\n\n // 1. Get filters from definition with default values\n let filtersData = <RenderFiltersReturnValue>await FiltersFormUtils.renderFilters(fields, interactive)\n\n // 2. Update filter values with user context values. eg. establishmnent code\n filtersData.filters = PersonalistionUtils.setUserContextDefaults(res, filtersData.filters)\n\n // 3. Update filter values with saved defaults\n let defaultFilterValues\n if (res.locals['saveDefaultsEnabled']) {\n defaultFilterValues = await services.defaultFilterValuesService.get(userId, reportId, id, FiltersType.REQUEST)\n }\n if (defaultFilterValues) {\n filtersData = PersonalistionUtils.setFilterValuesFromSavedDefaults(\n filtersData.filters,\n filtersData.sortBy || [],\n defaultFilterValues,\n )\n }\n\n // 4. Overwrite filter values with query param values\n filtersData.filters = FiltersUtils.setFilterValuesFromRequest(filtersData.filters, req)\n\n return { filtersData, defaultFilterValues }\n}\n\n/**\n * Sends the request for the async report\n *\n * @param {AsyncReportUtilsParams} { req, res, services }\n * @return {*}\n */\nexport const request = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token } = LocalsHelper.getValues(res)\n const requestArgs = { req, res, token }\n\n const { executionData, queryData, childExecutionData } = await requestProduct({\n ...requestArgs,\n dashboardService: services.dashboardService,\n reportingService: services.reportingService,\n })\n\n if (executionData.executionId && executionData.tableId) {\n await updateStore({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n })\n } else {\n throw new Error('No execution data returned')\n }\n\n return executionData\n}\n\nexport const cancelRequest = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token, dprUser, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, executionId, type } = req.params\n\n let service: ReportingService | DashboardService = services.reportingService\n if (type === ReportType.REPORT) service = services.reportingService\n if (type === ReportType.DASHBOARD) service = services.dashboardService\n\n const response = await service.cancelAsyncRequest(token, reportId, id, executionId, definitionsPath)\n\n if (response && response['cancellationSucceeded']) {\n await services.requestedReportService.updateStatus(executionId, dprUser.id, RequestStatus.ABORTED)\n }\n}\n\n/**\n * Returns the data required for rendering the async filters component\n *\n * @param {AsyncReportUtilsParams} { req, res, dataSources }\n * @return {*}\n */\nexport const renderRequest = async ({\n req,\n res,\n services,\n next,\n}: {\n req: Request\n res: Response\n next: NextFunction\n services: Services\n}): Promise<RequestDataResult | boolean> => {\n try {\n const { token, csrfToken, definitionsPath: definitionPath, dpdPathFromQuery, dprUser } = LocalsHelper.getValues(res)\n const { reportId, type, id } = req.params\n const { definition } = res.locals\n const defaultsSaved = <string>req.query['defaultsSaved']\n\n const definitionApiArgs = { token, reportId, definitionPath, services }\n\n let name\n let reportName\n let description\n let template\n let fields: components['schemas']['FieldDefinition'][] = []\n let sections\n let interactive\n let filtersData\n let defaultFilterValues: defaultFilterValue[] = []\n\n if (type === ReportType.REPORT) {\n ;({ name, reportName, description, fields, interactive } = await renderReportRequestData(definition))\n }\n\n if (type === ReportType.DASHBOARD) {\n ;({ name, reportName, description, sections, fields } = await renderDashboardRequestData({\n ...definitionApiArgs,\n definition,\n }))\n }\n\n if (fields) {\n const filterData = await getFilterData(req, res, fields, interactive || false, services, dprUser.id)\n defaultFilterValues = filterData.defaultFilterValues || defaultFilterValues\n filtersData = filterData.filtersData\n }\n\n const reportData: RequestReportData = {\n reportName,\n name,\n description,\n reportId,\n id,\n ...(dpdPathFromQuery && { definitionPath }),\n csrfToken,\n template,\n sections,\n hasDefaults: defaultFilterValues?.length > 0,\n defaultsSaved,\n type: type as ReportType,\n saveDefaultsEnabled: res.locals['saveDefaultsEnabled'],\n }\n\n return {\n title: `Request ${type}`,\n filtersDescription: `Customise your ${type} using the filters below and submit your request.`,\n filtersData,\n reportData,\n }\n } catch (error) {\n next(error)\n return false\n }\n}\n\nexport const getFiltersFromReqBody = (req: Request) => {\n return Object.keys(req.body)\n .filter((attr) => attr.includes('filters.'))\n .filter((attr) => !!req.body[attr])\n .map((attr) => {\n return { name: attr, value: req.body[attr] }\n })\n}\n\nexport default {\n request,\n cancelRequest,\n renderRequest,\n getFiltersFromReqBody,\n getDefintionByType,\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["utils_exports", "__export", "cancelRequest", "utils_default", "getDefintionByType", "getFiltersFromReqBody", "renderRequest", "request", "updateStore", "__toCommonJS", "import_utils", "import_localsHelper", "import_reportStoreHelper", "import_UserStoreItemBuilder", "import_UserReports", "import_personalisationUtils", "import_filtersTypeEnum", "req", "res", "services", "queryData", "executionData", "childExecutionData", "search", "id", "type", "dprUser", "definitionsPath", "dpdPathFromQuery", "LocalsHelper", "requestFormData", "reportData", "requestedReportData", "UserStoreItemBuilder", "requestChildReports", "childVariants", "reportingService", "token", "reportId", "dataProductDefinitionsPath", "childVariant", "response", "executionId", "tableId", "requestProduct", "dashboardService", "fields", "definition", "FiltersFormUtils", "renderDashboardRequestData", "definitionPath", "reportName", "def", "name", "description", "sections", "renderReportRequestData", "_next", "variantId", "getFilterData", "interactive", "userId", "filtersData", "PersonalistionUtils", "defaultFilterValues", "FiltersUtils", "requestArgs", "service", "next", "csrfToken", "defaultsSaved", "definitionApiArgs", "template", "filterData", "error", "attr"]
7
7
  }
@@ -301,7 +301,7 @@ export const request = async ({ req, res, services }: AsyncReportUtilsParams) =>
301
301
  reportingService: services.reportingService,
302
302
  })
303
303
 
304
- if (executionData) {
304
+ if (executionData.executionId && executionData.tableId) {
305
305
  await updateStore({
306
306
  req,
307
307
  res,
@@ -310,6 +310,8 @@ export const request = async ({ req, res, services }: AsyncReportUtilsParams) =>
310
310
  executionData,
311
311
  childExecutionData,
312
312
  })
313
+ } else {
314
+ throw new Error('No execution data returned')
313
315
  }
314
316
 
315
317
  return executionData
@@ -1,2 +1,2 @@
1
- "use strict";var c=require("../../../../../cypress-tests/cypressUtils");context("Requesting a report",()=>{const o="/embedded/platform/",r=()=>{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")};describe("Successful request",()=>{beforeEach(()=>{(0,c.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20"),cy.visit(o)}),it("should succesfully request and load a report",()=>{cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(s,l)=>!!l.textContent?.includes("Successful Report")&&!!l.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.location().should(s=>{expect(s.search).to.contain("filters.field1=value1.2"),expect(s.search).to.contain("filters.field3.start=2003-02-0"),expect(s.search).to.contain("filters.field3.end=2006-05-04"),expect(s.search).to.contain("filters.field7=2005-02-01"),expect(s.search).to.contain("filters.field8=value8.2&filters.field8=value8.3"),expect(s.search).to.contain("sortColumn=field1&sortedAsc=false")}),cy.findByRole("button",{name:"Request report"}).click(),cy.url().should("match",/.*\/embedded\/platform\/dpr\/request-report\/report\/request-examples\/request-example-success\/(.*)\/status/i),r(),cy.url().should("match",/.*\/embedded\/platform\/dpr\/view-report\/async\/report\/request-examples\/request-example-success\/(.*)\/report/i),cy.location().should(s=>{expect(s.search).to.contain("columns=field1&columns=field2&columns=field3&columns=field6&columns=field7")})}),it("should redirect the old request url to the new one",()=>{cy.visit("/embedded/platform/async/report/request-examples/request-example-success/request"),cy.url().should("have.string","/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters"),cy.location().should(l=>{expect(l.search).to.contain("filters.field1=value1.2"),expect(l.search).to.contain("filters.field3.start=2003-02-0"),expect(l.search).to.contain("filters.field3.end=2006-05-04"),expect(l.search).to.contain("filters.field7=2005-02-01"),expect(l.search).to.contain("filters.field8=value8.2&filters.field8=value8.3"),expect(l.search).to.contain("sortColumn=field1&sortedAsc=false")})})}),describe("Failed request",()=>{beforeEach(()=>{(0,c.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20"),cy.visit(o)});const s=()=>{cy.task("stubReportsFailedStatus"),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(e,t)=>!!t.textContent?.includes("Successful Report")&&!!t.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("group",{name:/Field 1/}).findByRole("radio",{checked:!0}).invoke("val").as("field1"),cy.findByRole("combobox",{name:/Field 2/}).invoke("val").as("field2"),cy.findByRole("group",{name:/Field 3/}).within(()=>{cy.findByRole("textbox",{name:/From/}).invoke("val").as("field3From"),cy.findByRole("textbox",{name:/To/}).invoke("val").as("field3To")}),cy.findByRole("combobox",{name:/Field 4/}).invoke("val").as("field4"),cy.findByRole("combobox",{name:/Field 5/}).invoke("val").as("field5"),cy.findByRole("textbox",{name:/Field 6/}).invoke("val").as("field6"),cy.findByRole("textbox",{name:/Field 7/}).invoke("val").as("field7"),cy.findByRole("group",{name:/Field 8/}).within(()=>{cy.findAllByRole("checkbox").each((e,t)=>{cy.wrap(e).invoke("val").as(`field8-${t}`)})}),cy.findByRole("button",{name:"Request report"}).click(),cy.findByRole("button",{name:"Retry"}).click(),cy.findByRole("group",{name:/Field 1/}).findByRole("radio",{checked:!0}).invoke("val").then(e=>{cy.get("@field1").should("equal",e)}),cy.findByRole("combobox",{name:/Field 2/}).invoke("val").then(e=>{cy.get("@field2").should("equal",e)}),cy.findByRole("group",{name:/Field 3/}).within(()=>{cy.findByRole("textbox",{name:/From/}).invoke("val").then(e=>{cy.get("@field3From").should("equal",e)}),cy.findByRole("textbox",{name:/To/}).invoke("val").then(e=>{cy.get("@field3To").should("equal",e)})}),cy.findByRole("combobox",{name:/Field 4/}).invoke("val").then(e=>{cy.get("@field4").should("equal",e)}),cy.findByRole("combobox",{name:/Field 5/}).invoke("val").then(e=>{cy.get("@field5").should("equal",e)}),cy.findByRole("textbox",{name:/Field 6/}).invoke("val").then(e=>{cy.get("@field6").should("equal",e)}),cy.findByRole("textbox",{name:/Field 7/}).invoke("val").then(e=>{cy.get("@field7").should("equal",e)}),cy.findByRole("group",{name:/Field 8/}).within(()=>{cy.findAllByRole("checkbox").each((e,t)=>{cy.wrap(e).invoke("val").then(n=>{cy.get(`@field8-${t}`).should("equal",n)})})})},l=()=>{cy.visit(o),cy.findByRole("tab",{name:/Requested/}).click(),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(e,t)=>!!t.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Retry"}).should("be.visible"),cy.findByRole("link",{name:"Remove"}).should("be.visible"),cy.findByRole("cell",{name:"FAILED"}).should("be.visible")})}),cy.findByRole("link",{name:"Retry"}).click(),cy.findByText(/Your report has failed to generate/).should("be.visible"),cy.findAllByText(/Successful Report/).should("be.visible"),cy.visit(o),cy.findByRole("tab",{name:/Requested/}).click(),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(e,t)=>!!t.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Retry"}).click()})}),cy.findByText(/Your report has failed to generate/).should("be.visible"),cy.findAllByText(/Successful Report/).should("be.visible")},i=()=>{cy.url().then(e=>{const t=e.split("/"),n=t[t.length-2],a=`/embedded/platform/async/report/request-examples/request-example-success/request/${n}`;cy.visit(a),cy.url().should("have.string",`/embedded/platform/dpr/request-report/report/request-examples/request-example-success/${n}/status`)})},d=()=>{cy.visit(o),cy.findByRole("tab",{name:/Requested/}).click(),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(e,t)=>!!t.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Remove"}).click()})}),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(e,t)=>!!t.textContent?.includes("Successful Report")}).should("not.exist")})};it("should test out filters, retry/remove and old status url redirects",()=>{s(),l(),i(),d()})}),describe("Aborted request",()=>{const s="/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters?filters.field1=value1.2&filters.field3.start=2003-02-01&filters.field3.end=2006-05-04&filters.field7=2005-02-01&filters.field8=value8.2&filters.field8=value8.3&sortColumn=field1&sortedAsc=false";beforeEach(()=>{(0,c.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20"),cy.task("stubCancelAsyncRequest"),cy.visit(o)}),it("should be able to abort the request",()=>{cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(l,i)=>!!i.textContent?.includes("Successful Report")&&!!i.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(),cy.url().should("match",/.*\/embedded\/platform\/dpr\/request-report\/report\/request-examples\/request-example-success\/(.*)\/status/i),cy.findByRole("button",{name:/Cancel/}).click(),cy.task("stubReportsAbortedStatus"),cy.findByRole("strong").contains("ABORTED"),cy.findByRole("button",{name:/Return to request page/}).click(),cy.url().should("have.string","/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters"),cy.visit(o),cy.findByRole("tab",{name:/Requested/}).click(),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(l,i)=>!!i.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Retry"}).should("be.visible"),cy.findByRole("link",{name:"Remove"}).should("be.visible"),cy.findByRole("cell",{name:"ABORTED"}).should("be.visible")})}),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(l,i)=>!!i.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Retry"}).click()})}),cy.url().should("have.string",s),cy.visit(o),cy.findByRole("tab",{name:/Requested/}).click(),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(l,i)=>!!i.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Remove"}).click()})}),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(l,i)=>!!i.textContent?.includes("Successful Report")}).should("not.exist")})})})});
1
+ "use strict";var n=require("../../../../../cypress-tests/cypressUtils");context("Requesting a report",()=>{const o="/embedded/platform/",r=()=>{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")};describe("Successful request",()=>{beforeEach(()=>{(0,n.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20"),cy.visit(o)}),it("should succesfully request and load a report",()=>{cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(i,l)=>!!l.textContent?.includes("Successful Report")&&!!l.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.location().should(i=>{expect(i.search).to.contain("filters.field1=value1.2"),expect(i.search).to.contain("filters.field3.start=2003-02-0"),expect(i.search).to.contain("filters.field3.end=2006-05-04"),expect(i.search).to.contain("filters.field7=2005-02-01"),expect(i.search).to.contain("filters.field8=value8.2&filters.field8=value8.3"),expect(i.search).to.contain("sortColumn=field1&sortedAsc=false")}),cy.findByRole("button",{name:"Request report"}).click(),cy.url().should("match",/.*\/embedded\/platform\/dpr\/request-report\/report\/request-examples\/request-example-success\/(.*)\/status/i),r(),cy.url().should("match",/.*\/embedded\/platform\/dpr\/view-report\/async\/report\/request-examples\/request-example-success\/(.*)\/report/i),cy.location().should(i=>{expect(i.search).to.contain("columns=field1&columns=field2&columns=field3&columns=field6&columns=field7")})}),it("should redirect the old request url to the new one",()=>{cy.visit("/embedded/platform/async/report/request-examples/request-example-success/request"),cy.url().should("have.string","/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters"),cy.location().should(l=>{expect(l.search).to.contain("filters.field1=value1.2"),expect(l.search).to.contain("filters.field3.start=2003-02-0"),expect(l.search).to.contain("filters.field3.end=2006-05-04"),expect(l.search).to.contain("filters.field7=2005-02-01"),expect(l.search).to.contain("filters.field8=value8.2&filters.field8=value8.3"),expect(l.search).to.contain("sortColumn=field1&sortedAsc=false")})})}),describe("Failed request",()=>{beforeEach(()=>{(0,n.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20"),cy.visit(o)});const i=()=>{cy.task("stubReportsFailedStatus"),cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(e,t)=>!!t.textContent?.includes("Successful Report")&&!!t.textContent?.includes("this will succeed")}).within(()=>{cy.findByRole("link",{name:"Request report"}).click()})}),cy.findByRole("group",{name:/Field 1/}).findByRole("radio",{checked:!0}).invoke("val").as("field1"),cy.findByRole("combobox",{name:/Field 2/}).invoke("val").as("field2"),cy.findByRole("group",{name:/Field 3/}).within(()=>{cy.findByRole("textbox",{name:/From/}).invoke("val").as("field3From"),cy.findByRole("textbox",{name:/To/}).invoke("val").as("field3To")}),cy.findByRole("combobox",{name:/Field 4/}).invoke("val").as("field4"),cy.findByRole("combobox",{name:/Field 5/}).invoke("val").as("field5"),cy.findByRole("textbox",{name:/Field 6/}).invoke("val").as("field6"),cy.findByRole("textbox",{name:/Field 7/}).invoke("val").as("field7"),cy.findByRole("group",{name:/Field 8/}).within(()=>{cy.findAllByRole("checkbox").each((e,t)=>{cy.wrap(e).invoke("val").as(`field8-${t}`)})}),cy.findByRole("button",{name:"Request report"}).click(),cy.findByRole("button",{name:"Retry"}).click(),cy.findByRole("group",{name:/Field 1/}).findByRole("radio",{checked:!0}).invoke("val").then(e=>{cy.get("@field1").should("equal",e)}),cy.findByRole("combobox",{name:/Field 2/}).invoke("val").then(e=>{cy.get("@field2").should("equal",e)}),cy.findByRole("group",{name:/Field 3/}).within(()=>{cy.findByRole("textbox",{name:/From/}).invoke("val").then(e=>{cy.get("@field3From").should("equal",e)}),cy.findByRole("textbox",{name:/To/}).invoke("val").then(e=>{cy.get("@field3To").should("equal",e)})}),cy.findByRole("combobox",{name:/Field 4/}).invoke("val").then(e=>{cy.get("@field4").should("equal",e)}),cy.findByRole("combobox",{name:/Field 5/}).invoke("val").then(e=>{cy.get("@field5").should("equal",e)}),cy.findByRole("textbox",{name:/Field 6/}).invoke("val").then(e=>{cy.get("@field6").should("equal",e)}),cy.findByRole("textbox",{name:/Field 7/}).invoke("val").then(e=>{cy.get("@field7").should("equal",e)}),cy.findByRole("group",{name:/Field 8/}).within(()=>{cy.findAllByRole("checkbox").each((e,t)=>{cy.wrap(e).invoke("val").then(c=>{cy.get(`@field8-${t}`).should("equal",c)})})})},l=()=>{cy.visit(o),cy.findByRole("tab",{name:/Requested/}).click(),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(e,t)=>!!t.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Retry"}).should("be.visible"),cy.findByRole("link",{name:"Remove"}).should("be.visible"),cy.findByRole("cell",{name:"FAILED"}).should("be.visible")})}),cy.findByRole("link",{name:"Retry"}).click(),cy.findByText(/Your report has failed to generate/).should("be.visible"),cy.findAllByText(/Successful Report/).should("be.visible"),cy.visit(o),cy.findByRole("tab",{name:/Requested/}).click(),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(e,t)=>!!t.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Retry"}).click()})}),cy.findByText(/Your report has failed to generate/).should("be.visible"),cy.findAllByText(/Successful Report/).should("be.visible")},s=()=>{cy.url().then(e=>{const t=e.split("/"),c=t[t.length-2],a=`/embedded/platform/async/report/request-examples/request-example-success/request/${c}`;cy.visit(a),cy.url().should("have.string",`/embedded/platform/dpr/request-report/report/request-examples/request-example-success/${c}/status`)})},d=()=>{cy.visit(o),cy.findByRole("tab",{name:/Requested/}).click(),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(e,t)=>!!t.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Remove"}).click()})}),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(e,t)=>!!t.textContent?.includes("Successful Report")}).should("not.exist")})};it("should test out filters, retry/remove and old status url redirects",()=>{i(),l(),s(),d()})}),describe("Aborted request",()=>{const i="/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters?filters.field1=value1.2&filters.field3.start=2003-02-01&filters.field3.end=2006-05-04&filters.field7=2005-02-01&filters.field8=value8.2&filters.field8=value8.3&sortColumn=field1&sortedAsc=false";beforeEach(()=>{(0,n.executeReportStubs)(),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubRequestSuccessResult20"),cy.task("stubCancelAsyncRequest"),cy.visit(o)}),it("should be able to abort the request",()=>{cy.findByLabelText(/Reports catalogue.*/i).within(()=>{cy.findByRole("row",{name:(l,s)=>!!s.textContent?.includes("Successful Report")&&!!s.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(),cy.url().should("match",/.*\/embedded\/platform\/dpr\/request-report\/report\/request-examples\/request-example-success\/(.*)\/status/i),cy.findByRole("button",{name:/Cancel/}).click(),cy.task("stubReportsAbortedStatus"),cy.findByRole("strong").contains("ABORTED"),cy.findByRole("button",{name:/Return to request page/}).click(),cy.url().should("have.string","/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters"),cy.visit(o),cy.findByRole("tab",{name:/Requested/}).click(),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(l,s)=>!!s.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Retry"}).should("be.visible"),cy.findByRole("link",{name:"Remove"}).should("be.visible"),cy.findByRole("cell",{name:"ABORTED"}).should("be.visible")})}),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(l,s)=>!!s.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Retry"}).click()})}),cy.url().should("have.string",i),cy.visit(o),cy.findByRole("tab",{name:/Requested/}).click(),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(l,s)=>!!s.textContent?.includes("Successful Report")}).within(()=>{cy.findByRole("link",{name:"Remove"}).click()})}),cy.findByLabelText(/Requested/i).within(()=>{cy.findByRole("row",{name:(l,s)=>!!s.textContent?.includes("Successful Report")}).should("not.exist")})})}),describe("Exceution failed",()=>{beforeEach(()=>{(0,n.executeReportStubs)(),cy.visit(o)}),it("should error when execution data is incorrect",()=>{(0,n.requestReportByNameAndDescription)({name:"Execution data error",description:"This will return an error"}),cy.findByRole("heading",{name:/Your report has failed to generate/}).should("be.visible"),cy.visit(o),cy.findByRole("tab",{name:/Requested/}).click(),cy.findByLabelText(/Requested.*/i).within(()=>{cy.findAllByRole("paragraph").contains(/You have 0 requested reports/).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/request-report/tests.cy.ts"],
4
- "sourcesContent": ["import { executeReportStubs } from '../../../../../cypress-tests/cypressUtils'\n\ncontext('Requesting a report', () => {\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 describe('Successful request', () => {\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.visit(path)\n })\n\n it('should succesfully request and load a report', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\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.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-0`)\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 expect(location.search).to.contain(`sortColumn=field1&sortedAsc=false`)\n })\n\n cy.findByRole('button', { name: 'Request report' }).click()\n cy.url().should(\n 'match',\n /.*\\/embedded\\/platform\\/dpr\\/request-report\\/report\\/request-examples\\/request-example-success\\/(.*)\\/status/i,\n )\n checkStatuses()\n cy.url().should(\n 'match',\n /.*\\/embedded\\/platform\\/dpr\\/view-report\\/async\\/report\\/request-examples\\/request-example-success\\/(.*)\\/report/i,\n )\n cy.location().should((location) => {\n expect(location.search).to.contain(`columns=field1&columns=field2&columns=field3&columns=field6&columns=field7`)\n })\n })\n\n it('should redirect the old request url to the new one', () => {\n const oldPath = '/embedded/platform/async/report/request-examples/request-example-success/request'\n cy.visit(oldPath)\n cy.url().should(\n 'have.string',\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters',\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-0`)\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 expect(location.search).to.contain(`sortColumn=field1&sortedAsc=false`)\n })\n })\n })\n\n describe('Failed request', () => {\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.visit(path)\n })\n\n const testFilterPersistence = () => {\n cy.task('stubReportsFailedStatus')\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('group', { name: /Field 1/ })\n .findByRole('radio', { checked: true })\n .invoke('val')\n .as('field1')\n cy.findByRole('combobox', { name: /Field 2/ })\n .invoke('val')\n .as('field2')\n cy.findByRole('group', { name: /Field 3/ }).within(() => {\n cy.findByRole('textbox', { name: /From/ }).invoke('val').as('field3From')\n cy.findByRole('textbox', { name: /To/ }).invoke('val').as('field3To')\n })\n cy.findByRole('combobox', { name: /Field 4/ })\n .invoke('val')\n .as('field4')\n cy.findByRole('combobox', { name: /Field 5/ })\n .invoke('val')\n .as('field5')\n cy.findByRole('textbox', { name: /Field 6/ })\n .invoke('val')\n .as('field6')\n cy.findByRole('textbox', { name: /Field 7/ })\n .invoke('val')\n .as('field7')\n cy.findByRole('group', { name: /Field 8/ }).within(() => {\n cy.findAllByRole('checkbox').each((el, idx) => {\n cy.wrap(el).invoke('val').as(`field8-${idx}`)\n })\n })\n cy.findByRole('button', { name: 'Request report' }).click()\n cy.findByRole('button', { name: 'Retry' }).click()\n\n cy.findByRole('group', { name: /Field 1/ })\n .findByRole('radio', { checked: true })\n .invoke('val')\n .then((val) => {\n cy.get('@field1').should('equal', val)\n })\n cy.findByRole('combobox', { name: /Field 2/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field2').should('equal', val)\n })\n cy.findByRole('group', { name: /Field 3/ }).within(() => {\n cy.findByRole('textbox', { name: /From/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field3From').should('equal', val)\n })\n cy.findByRole('textbox', { name: /To/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field3To').should('equal', val)\n })\n })\n cy.findByRole('combobox', { name: /Field 4/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field4').should('equal', val)\n })\n cy.findByRole('combobox', { name: /Field 5/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field5').should('equal', val)\n })\n cy.findByRole('textbox', { name: /Field 6/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field6').should('equal', val)\n })\n cy.findByRole('textbox', { name: /Field 7/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field7').should('equal', val)\n })\n cy.findByRole('group', { name: /Field 8/ }).within(() => {\n cy.findAllByRole('checkbox').each((el, idx) => {\n cy.wrap(el)\n .invoke('val')\n .then((val) => {\n cy.get(`@field8-${idx}`).should('equal', val)\n })\n })\n })\n }\n\n const testCorrectLinksRetryFailure = () => {\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).should('be.visible')\n cy.findByRole('link', { name: 'Remove' }).should('be.visible')\n cy.findByRole('cell', { name: 'FAILED' }).should('be.visible')\n })\n })\n cy.findByRole('link', { name: 'Retry' }).click()\n cy.findByText(/Your report has failed to generate/).should('be.visible')\n cy.findAllByText(/Successful Report/).should('be.visible')\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).click()\n })\n })\n cy.findByText(/Your report has failed to generate/).should('be.visible')\n cy.findAllByText(/Successful Report/).should('be.visible')\n }\n const testRedirectsOldStatusUrl = () => {\n cy.url().then((url) => {\n const splitUrl = url.split('/')\n const prevExId = splitUrl[splitUrl.length - 2]\n const oldPath = `/embedded/platform/async/report/request-examples/request-example-success/request/${prevExId}`\n cy.visit(oldPath)\n cy.url().should(\n 'have.string',\n `/embedded/platform/dpr/request-report/report/request-examples/request-example-success/${prevExId}/status`,\n )\n })\n }\n const testRemoveItem = () => {\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(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 Boolean(element.textContent?.includes('Successful Report'))\n },\n }).should('not.exist')\n })\n }\n it('should test out filters, retry/remove and old status url redirects', () => {\n testFilterPersistence()\n testCorrectLinksRetryFailure()\n testRedirectsOldStatusUrl()\n testRemoveItem()\n })\n })\n\n describe('Aborted request', () => {\n const filtersHref =\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters?filters.field1=value1.2&filters.field3.start=2003-02-01&filters.field3.end=2006-05-04&filters.field7=2005-02-01&filters.field8=value8.2&filters.field8=value8.3&sortColumn=field1&sortedAsc=false'\n\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubCancelAsyncRequest')\n cy.visit(path)\n })\n\n it('should be able to abort the request', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\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\n cy.url().should(\n 'match',\n /.*\\/embedded\\/platform\\/dpr\\/request-report\\/report\\/request-examples\\/request-example-success\\/(.*)\\/status/i,\n )\n\n cy.findByRole('button', { name: /Cancel/ }).click()\n cy.task('stubReportsAbortedStatus')\n cy.findByRole('strong').contains('ABORTED')\n cy.findByRole('button', { name: /Return to request page/ }).click()\n cy.url().should(\n 'have.string',\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters',\n )\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).should('be.visible')\n cy.findByRole('link', { name: 'Remove' }).should('be.visible')\n cy.findByRole('cell', { name: 'ABORTED' }).should('be.visible')\n })\n })\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).click()\n })\n })\n cy.url().should('have.string', filtersHref)\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(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 Boolean(element.textContent?.includes('Successful Report'))\n },\n }).should('not.exist')\n })\n })\n })\n})\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { executeReportStubs, requestReportByNameAndDescription } from '../../../../../cypress-tests/cypressUtils'\n\ncontext('Requesting a report', () => {\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 describe('Successful request', () => {\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.visit(path)\n })\n\n it('should succesfully request and load a report', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\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.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-0`)\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 expect(location.search).to.contain(`sortColumn=field1&sortedAsc=false`)\n })\n\n cy.findByRole('button', { name: 'Request report' }).click()\n cy.url().should(\n 'match',\n /.*\\/embedded\\/platform\\/dpr\\/request-report\\/report\\/request-examples\\/request-example-success\\/(.*)\\/status/i,\n )\n checkStatuses()\n cy.url().should(\n 'match',\n /.*\\/embedded\\/platform\\/dpr\\/view-report\\/async\\/report\\/request-examples\\/request-example-success\\/(.*)\\/report/i,\n )\n cy.location().should((location) => {\n expect(location.search).to.contain(`columns=field1&columns=field2&columns=field3&columns=field6&columns=field7`)\n })\n })\n\n it('should redirect the old request url to the new one', () => {\n const oldPath = '/embedded/platform/async/report/request-examples/request-example-success/request'\n cy.visit(oldPath)\n cy.url().should(\n 'have.string',\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters',\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-0`)\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 expect(location.search).to.contain(`sortColumn=field1&sortedAsc=false`)\n })\n })\n })\n\n describe('Failed request', () => {\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.visit(path)\n })\n\n const testFilterPersistence = () => {\n cy.task('stubReportsFailedStatus')\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('group', { name: /Field 1/ })\n .findByRole('radio', { checked: true })\n .invoke('val')\n .as('field1')\n cy.findByRole('combobox', { name: /Field 2/ })\n .invoke('val')\n .as('field2')\n cy.findByRole('group', { name: /Field 3/ }).within(() => {\n cy.findByRole('textbox', { name: /From/ }).invoke('val').as('field3From')\n cy.findByRole('textbox', { name: /To/ }).invoke('val').as('field3To')\n })\n cy.findByRole('combobox', { name: /Field 4/ })\n .invoke('val')\n .as('field4')\n cy.findByRole('combobox', { name: /Field 5/ })\n .invoke('val')\n .as('field5')\n cy.findByRole('textbox', { name: /Field 6/ })\n .invoke('val')\n .as('field6')\n cy.findByRole('textbox', { name: /Field 7/ })\n .invoke('val')\n .as('field7')\n cy.findByRole('group', { name: /Field 8/ }).within(() => {\n cy.findAllByRole('checkbox').each((el, idx) => {\n cy.wrap(el).invoke('val').as(`field8-${idx}`)\n })\n })\n cy.findByRole('button', { name: 'Request report' }).click()\n cy.findByRole('button', { name: 'Retry' }).click()\n\n cy.findByRole('group', { name: /Field 1/ })\n .findByRole('radio', { checked: true })\n .invoke('val')\n .then((val) => {\n cy.get('@field1').should('equal', val)\n })\n cy.findByRole('combobox', { name: /Field 2/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field2').should('equal', val)\n })\n cy.findByRole('group', { name: /Field 3/ }).within(() => {\n cy.findByRole('textbox', { name: /From/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field3From').should('equal', val)\n })\n cy.findByRole('textbox', { name: /To/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field3To').should('equal', val)\n })\n })\n cy.findByRole('combobox', { name: /Field 4/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field4').should('equal', val)\n })\n cy.findByRole('combobox', { name: /Field 5/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field5').should('equal', val)\n })\n cy.findByRole('textbox', { name: /Field 6/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field6').should('equal', val)\n })\n cy.findByRole('textbox', { name: /Field 7/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field7').should('equal', val)\n })\n cy.findByRole('group', { name: /Field 8/ }).within(() => {\n cy.findAllByRole('checkbox').each((el, idx) => {\n cy.wrap(el)\n .invoke('val')\n .then((val) => {\n cy.get(`@field8-${idx}`).should('equal', val)\n })\n })\n })\n }\n\n const testCorrectLinksRetryFailure = () => {\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).should('be.visible')\n cy.findByRole('link', { name: 'Remove' }).should('be.visible')\n cy.findByRole('cell', { name: 'FAILED' }).should('be.visible')\n })\n })\n cy.findByRole('link', { name: 'Retry' }).click()\n cy.findByText(/Your report has failed to generate/).should('be.visible')\n cy.findAllByText(/Successful Report/).should('be.visible')\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).click()\n })\n })\n cy.findByText(/Your report has failed to generate/).should('be.visible')\n cy.findAllByText(/Successful Report/).should('be.visible')\n }\n const testRedirectsOldStatusUrl = () => {\n cy.url().then((url) => {\n const splitUrl = url.split('/')\n const prevExId = splitUrl[splitUrl.length - 2]\n const oldPath = `/embedded/platform/async/report/request-examples/request-example-success/request/${prevExId}`\n cy.visit(oldPath)\n cy.url().should(\n 'have.string',\n `/embedded/platform/dpr/request-report/report/request-examples/request-example-success/${prevExId}/status`,\n )\n })\n }\n const testRemoveItem = () => {\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(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 Boolean(element.textContent?.includes('Successful Report'))\n },\n }).should('not.exist')\n })\n }\n it('should test out filters, retry/remove and old status url redirects', () => {\n testFilterPersistence()\n testCorrectLinksRetryFailure()\n testRedirectsOldStatusUrl()\n testRemoveItem()\n })\n })\n\n describe('Aborted request', () => {\n const filtersHref =\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters?filters.field1=value1.2&filters.field3.start=2003-02-01&filters.field3.end=2006-05-04&filters.field7=2005-02-01&filters.field8=value8.2&filters.field8=value8.3&sortColumn=field1&sortedAsc=false'\n\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubCancelAsyncRequest')\n cy.visit(path)\n })\n\n it('should be able to abort the request', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\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\n cy.url().should(\n 'match',\n /.*\\/embedded\\/platform\\/dpr\\/request-report\\/report\\/request-examples\\/request-example-success\\/(.*)\\/status/i,\n )\n\n cy.findByRole('button', { name: /Cancel/ }).click()\n cy.task('stubReportsAbortedStatus')\n cy.findByRole('strong').contains('ABORTED')\n cy.findByRole('button', { name: /Return to request page/ }).click()\n cy.url().should(\n 'have.string',\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters',\n )\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).should('be.visible')\n cy.findByRole('link', { name: 'Remove' }).should('be.visible')\n cy.findByRole('cell', { name: 'ABORTED' }).should('be.visible')\n })\n })\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).click()\n })\n })\n cy.url().should('have.string', filtersHref)\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(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 Boolean(element.textContent?.includes('Successful Report'))\n },\n }).should('not.exist')\n })\n })\n })\n\n describe('Exceution failed', () => {\n beforeEach(() => {\n executeReportStubs()\n cy.visit(path)\n })\n\n it('should error when execution data is incorrect', () => {\n requestReportByNameAndDescription({ name: 'Execution data error', description: 'This will return an error' })\n\n cy.findByRole('heading', { name: /Your report has failed to generate/ }).should('be.visible')\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n cy.findByLabelText(/Requested.*/i).within(() => {\n cy.findAllByRole('paragraph')\n .contains(/You have 0 requested reports/)\n .should('be.visible')\n })\n })\n })\n})\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_cypressUtils", "path", "checkStatuses", "_", "element", "location", "testFilterPersistence", "el", "idx", "val", "testCorrectLinksRetryFailure", "testRedirectsOldStatusUrl", "url", "splitUrl", "prevExId", "oldPath", "testRemoveItem", "filtersHref"]
7
7
  }
@@ -1,4 +1,4 @@
1
- import { executeReportStubs } from '../../../../../cypress-tests/cypressUtils'
1
+ import { executeReportStubs, requestReportByNameAndDescription } from '../../../../../cypress-tests/cypressUtils'
2
2
 
3
3
  context('Requesting a report', () => {
4
4
  const path = '/embedded/platform/'
@@ -355,4 +355,25 @@ context('Requesting a report', () => {
355
355
  })
356
356
  })
357
357
  })
358
+
359
+ describe('Exceution failed', () => {
360
+ beforeEach(() => {
361
+ executeReportStubs()
362
+ cy.visit(path)
363
+ })
364
+
365
+ it('should error when execution data is incorrect', () => {
366
+ requestReportByNameAndDescription({ name: 'Execution data error', description: 'This will return an error' })
367
+
368
+ cy.findByRole('heading', { name: /Your report has failed to generate/ }).should('be.visible')
369
+
370
+ cy.visit(path)
371
+ cy.findByRole('tab', { name: /Requested/ }).click()
372
+ cy.findByLabelText(/Requested.*/i).within(() => {
373
+ cy.findAllByRole('paragraph')
374
+ .contains(/You have 0 requested reports/)
375
+ .should('be.visible')
376
+ })
377
+ })
378
+ })
358
379
  })
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ministryofjustice/hmpps-digital-prison-reporting-frontend",
3
3
  "description": "The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.",
4
- "version": "4.22.2",
4
+ "version": "4.22.3",
5
5
  "main": "dpr/all.mjs",
6
6
  "sass": "dpr/all.scss",
7
7
  "engines": {