From ea1a6c7b1793acba81a417b5be025ed352fd32ab Mon Sep 17 00:00:00 2001 From: Alan Cruikshanks Date: Sun, 20 Oct 2024 11:40:31 +0100 Subject: [PATCH 1/5] 0.24.0 --- CHANGELOG.md | 88 ++++++++++++++++++++++++++++++++++++++++++++++- package-lock.json | 4 +-- package.json | 2 +- 3 files changed, 90 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 128475bb5d..7f7c3a6bb5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,89 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +#### [v0.24.0](https://github.com/DEFRA/water-abstraction-system/compare/v0.23.0...v0.24.0) + +- Import licence document roles for a licence [`#1414`](https://github.com/DEFRA/water-abstraction-system/pull/1414) +- Bump eslint-plugin-jsdoc from 50.4.1 to 50.4.3 [`#1420`](https://github.com/DEFRA/water-abstraction-system/pull/1420) +- Bump @hapi/lab from 25.3.1 to 25.3.2 [`#1421`](https://github.com/DEFRA/water-abstraction-system/pull/1421) +- Bump @aws-sdk/client-s3 from 3.673.0 to 3.674.0 [`#1422`](https://github.com/DEFRA/water-abstraction-system/pull/1422) +- Remove POST create bill run route [`#1418`](https://github.com/DEFRA/water-abstraction-system/pull/1418) +- Exclude VOID returns from two-part tariff billing [`#1419`](https://github.com/DEFRA/water-abstraction-system/pull/1419) +- 2PT use full authorised volume rather than Nil [`#1404`](https://github.com/DEFRA/water-abstraction-system/pull/1404) +- Bump @aws-sdk/client-s3 from 3.670.0 to 3.673.0 [`#1417`](https://github.com/DEFRA/water-abstraction-system/pull/1417) +- Rename gauging stations to monitoring stations [`#1415`](https://github.com/DEFRA/water-abstraction-system/pull/1415) +- Fix auth scope on view monitoring station route [`#1413`](https://github.com/DEFRA/water-abstraction-system/pull/1413) +- Import licence document for a licence [`#1392`](https://github.com/DEFRA/water-abstraction-system/pull/1392) +- Bump eslint-plugin-jsdoc from 50.3.2 to 50.4.1 [`#1411`](https://github.com/DEFRA/water-abstraction-system/pull/1411) +- Add option to run tests without cleaning [`#1409`](https://github.com/DEFRA/water-abstraction-system/pull/1409) +- Handle missing Monitoring station metadata [`#1405`](https://github.com/DEFRA/water-abstraction-system/pull/1405) +- Bump eslint-plugin-jsdoc from 50.3.1 to 50.3.2 [`#1408`](https://github.com/DEFRA/water-abstraction-system/pull/1408) +- Bump @aws-sdk/client-s3 from 3.669.0 to 3.670.0 [`#1406`](https://github.com/DEFRA/water-abstraction-system/pull/1406) +- Bump mock-fs from 5.3.0 to 5.4.0 [`#1407`](https://github.com/DEFRA/water-abstraction-system/pull/1407) +- Refactor the import legacy persist logic [`#1387`](https://github.com/DEFRA/water-abstraction-system/pull/1387) +- Return log start and end dates to be determined using the correct cycle dates [`#1397`](https://github.com/DEFRA/water-abstraction-system/pull/1397) +- Bump govuk-frontend from 4.8.0 to 4.9.0 [`#1402`](https://github.com/DEFRA/water-abstraction-system/pull/1402) +- Bump @aws-sdk/client-s3 from 3.668.0 to 3.669.0 [`#1403`](https://github.com/DEFRA/water-abstraction-system/pull/1403) +- Fix error when seeding in AWS non-production [`#1400`](https://github.com/DEFRA/water-abstraction-system/pull/1400) +- Fix error with return cycles seeder [`#1399`](https://github.com/DEFRA/water-abstraction-system/pull/1399) +- Remove setting return cycle in ReturnLogHelper [`#1398`](https://github.com/DEFRA/water-abstraction-system/pull/1398) +- Fix QA issues in new Monitoring stations page [`#1395`](https://github.com/DEFRA/water-abstraction-system/pull/1395) +- Handle special characters in rtn req. bookmarks [`#1394`](https://github.com/DEFRA/water-abstraction-system/pull/1394) +- Bump @aws-sdk/client-s3 from 3.667.0 to 3.668.0 [`#1396`](https://github.com/DEFRA/water-abstraction-system/pull/1396) +- Bump @aws-sdk/client-s3 from 3.665.0 to 3.667.0 [`#1393`](https://github.com/DEFRA/water-abstraction-system/pull/1393) +- Refactor logic for creating return cycles when importing new licence [`#1389`](https://github.com/DEFRA/water-abstraction-system/pull/1389) +- Migrate monitoring station view page [`#1340`](https://github.com/DEFRA/water-abstraction-system/pull/1340) +- Handle empty site description in returns setup [`#1384`](https://github.com/DEFRA/water-abstraction-system/pull/1384) +- Import company address data for a licence [`#1385`](https://github.com/DEFRA/water-abstraction-system/pull/1385) +- Add abstraction method to lic. purpose points [`#1375`](https://github.com/DEFRA/water-abstraction-system/pull/1375) +- Stop display null site desc. in view licence rtn [`#1383`](https://github.com/DEFRA/water-abstraction-system/pull/1383) +- Bump @aws-sdk/client-s3 from 3.664.0 to 3.665.0 [`#1386`](https://github.com/DEFRA/water-abstraction-system/pull/1386) +- Import company address data for a licence [`#1371`](https://github.com/DEFRA/water-abstraction-system/pull/1371) +- Bump @aws-sdk/client-s3 from 3.663.0 to 3.664.0 [`#1381`](https://github.com/DEFRA/water-abstraction-system/pull/1381) +- Handle return requirements with no site desc. [`#1380`](https://github.com/DEFRA/water-abstraction-system/pull/1380) +- Handle invalid points better in view lic. summary [`#1374`](https://github.com/DEFRA/water-abstraction-system/pull/1374) +- Stop adding link on due returns for unauth users [`#1378`](https://github.com/DEFRA/water-abstraction-system/pull/1378) +- Fix down migrations for return logs view [`#1377`](https://github.com/DEFRA/water-abstraction-system/pull/1377) +- Bump @aws-sdk/client-s3 from 3.662.0 to 3.663.0 [`#1376`](https://github.com/DEFRA/water-abstraction-system/pull/1376) +- Bump eslint-plugin-jsdoc from 50.3.0 to 50.3.1 [`#1373`](https://github.com/DEFRA/water-abstraction-system/pull/1373) +- Bump @aws-sdk/client-s3 from 3.658.1 to 3.662.0 [`#1372`](https://github.com/DEFRA/water-abstraction-system/pull/1372) +- Create return cycle [`#1353`](https://github.com/DEFRA/water-abstraction-system/pull/1353) +- Stop generating optional data in company helper [`#1369`](https://github.com/DEFRA/water-abstraction-system/pull/1369) +- Bump sass from 1.79.3 to 1.79.4 [`#1370`](https://github.com/DEFRA/water-abstraction-system/pull/1370) +- Incorrect status showing on licence set up page [`#1367`](https://github.com/DEFRA/water-abstraction-system/pull/1367) +- Update view licence summary to use new points data [`#1316`](https://github.com/DEFRA/water-abstraction-system/pull/1316) +- Bump mock-fs from 5.2.0 to 5.3.0 [`#1366`](https://github.com/DEFRA/water-abstraction-system/pull/1366) +- Bump eslint-plugin-jsdoc from 50.2.5 to 50.3.0 [`#1365`](https://github.com/DEFRA/water-abstraction-system/pull/1365) +- Include water.points in data tear down [`#1364`](https://github.com/DEFRA/water-abstraction-system/pull/1364) +- Incorrect status showing on licence set up page [`#1363`](https://github.com/DEFRA/water-abstraction-system/pull/1363) +- Remove import jobs stats from /health/info [`#1336`](https://github.com/DEFRA/water-abstraction-system/pull/1336) +- Import addresses data for a licence [`#1355`](https://github.com/DEFRA/water-abstraction-system/pull/1355) +- Remove `DatabaseSupport.clean()` from unit tests [`#1327`](https://github.com/DEFRA/water-abstraction-system/pull/1327) +- Bump objection from 3.1.4 to 3.1.5 [`#1361`](https://github.com/DEFRA/water-abstraction-system/pull/1361) +- Bump @aws-sdk/client-s3 from 3.658.0 to 3.658.1 [`#1362`](https://github.com/DEFRA/water-abstraction-system/pull/1362) +- Bump eslint-plugin-jsdoc from 50.2.4 to 50.2.5 [`#1360`](https://github.com/DEFRA/water-abstraction-system/pull/1360) +- Alter 2PT agreement logic in rtn req setup journey [`#1359`](https://github.com/DEFRA/water-abstraction-system/pull/1359) +- Add site description to rtn. req. bookmark links [`#1358`](https://github.com/DEFRA/water-abstraction-system/pull/1358) +- Fix show unregistered label in view licence page [`#1357`](https://github.com/DEFRA/water-abstraction-system/pull/1357) +- Remove check for licence ended in approve rtn vers [`#1356`](https://github.com/DEFRA/water-abstraction-system/pull/1356) +- Bump @aws-sdk/client-s3 from 3.657.0 to 3.658.0 [`#1354`](https://github.com/DEFRA/water-abstraction-system/pull/1354) +- Update the 'points' data solution [`#1352`](https://github.com/DEFRA/water-abstraction-system/pull/1352) +- Import contact data for a licence [`#1317`](https://github.com/DEFRA/water-abstraction-system/pull/1317) +- Add pre sroc returns flagging to service [`#1335`](https://github.com/DEFRA/water-abstraction-system/pull/1335) +- Bump @aws-sdk/client-s3 from 3.654.0 to 3.657.0 [`#1351`](https://github.com/DEFRA/water-abstraction-system/pull/1351) +- Bump sass from 1.79.2 to 1.79.3 [`#1350`](https://github.com/DEFRA/water-abstraction-system/pull/1350) +- Bump sass from 1.79.1 to 1.79.2 [`#1349`](https://github.com/DEFRA/water-abstraction-system/pull/1349) +- Add external id to addresses view. [`#1346`](https://github.com/DEFRA/water-abstraction-system/pull/1346) +- Bump @aws-sdk/client-s3 from 3.651.1 to 3.654.0 [`#1348`](https://github.com/DEFRA/water-abstraction-system/pull/1348) +- Bump eslint-plugin-jsdoc from 50.2.3 to 50.2.4 [`#1347`](https://github.com/DEFRA/water-abstraction-system/pull/1347) +- Update Licence role helper to use reference data [`#1345`](https://github.com/DEFRA/water-abstraction-system/pull/1345) +- Create return logs for newly imported licences [`#1294`](https://github.com/DEFRA/water-abstraction-system/pull/1294) +- Update seeder to prevent duplicate key issue `duplicate key value violates unique constraint "points_external_id_unique"` [`8d5aec0`](https://github.com/DEFRA/water-abstraction-system/commit/8d5aec003b6ad992fefeaeedab82bc89fbc658da) + #### [v0.23.0](https://github.com/DEFRA/water-abstraction-system/compare/v0.22.0...v0.23.0) +> 18 September 2024 + - Bump sass from 1.78.0 to 1.79.1 [`#1343`](https://github.com/DEFRA/water-abstraction-system/pull/1343) - Bump pg-query-stream from 4.6.0 to 4.7.0 [`#1344`](https://github.com/DEFRA/water-abstraction-system/pull/1344) - Bump pg from 8.12.0 to 8.13.0 [`#1342`](https://github.com/DEFRA/water-abstraction-system/pull/1342) @@ -1056,7 +1137,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - Add back in our check endpoint [`#302`](https://github.com/DEFRA/water-abstraction-system/pull/302) - Bump @aws-sdk/client-s3 from 3.367.0 to 3.369.0 [`#303`](https://github.com/DEFRA/water-abstraction-system/pull/303) -#### [v0.7.0](https://github.com/DEFRA/water-abstraction-system/compare/v0.5.0...v0.7.0) +#### [v0.7.0](https://github.com/DEFRA/water-abstraction-system/compare/v0.6.0...v0.7.0) > 10 July 2023 @@ -1111,6 +1192,11 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - Bump @aws-sdk/client-s3 from 3.342.0 to 3.344.0 [`#252`](https://github.com/DEFRA/water-abstraction-system/pull/252) - Split `ProcessBillingPeriodService` into multiple services [`#241`](https://github.com/DEFRA/water-abstraction-system/pull/241) - Bump dotenv from 16.1.1 to 16.1.3 [`#251`](https://github.com/DEFRA/water-abstraction-system/pull/251) + +#### [v0.6.0](https://github.com/DEFRA/water-abstraction-system/compare/v0.5.0...v0.6.0) + +> 1 June 2023 + - Export a schema [`#238`](https://github.com/DEFRA/water-abstraction-system/pull/238) - Bump dotenv from 16.0.3 to 16.1.1 [`#248`](https://github.com/DEFRA/water-abstraction-system/pull/248) - Bump @aws-sdk/client-s3 from 3.341.0 to 3.342.0 [`#249`](https://github.com/DEFRA/water-abstraction-system/pull/249) diff --git a/package-lock.json b/package-lock.json index 2dfb9bd2c8..565bb2ecd5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "water-abstraction-system", - "version": "0.23.0", + "version": "0.24.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "water-abstraction-system", - "version": "0.23.0", + "version": "0.24.0", "hasInstallScript": true, "license": "OGL-UK-3.0", "dependencies": { diff --git a/package.json b/package.json index a16d57e57d..9a89654076 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "water-abstraction-system", - "version": "0.23.0", + "version": "0.24.0", "description": "System for managing water abstraction licences, including alerts, returns and billing", "homepage": "https://github.com/DEFRA/water-abstraction-team", "main": "index.js", From 3dac3fc1f1e21ccd816d726d76c2de10a1169a4f Mon Sep 17 00:00:00 2001 From: Alan Cruikshanks Date: Sun, 20 Oct 2024 15:40:04 +0100 Subject: [PATCH 2/5] Rename Rtn reqs. setup folder and route 'method' (#1428) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/DEFRA/water-abstraction-team/issues/126 We are on the cusp of our work to migrate the management of return versions (requirements) from NALD to WRLS going 'live'. This is a significant feature that has seen many iterations since we started. So, before it gets used in earnest, we want to ensure it is 'ship shape and Bristol fashion'! A key part of the tidy-up is moving all modules related to setting up a return version into a `/setup` subfolder, using the same pattern we used for setting up a bill run. The problem is that we already used 'setup' for one of the steps in the journey. 😩 So, this change renames the route `/method` and all related modules. --- .../return-requirements.controller.js | 54 ++++----- ...setup.presenter.js => method.presenter.js} | 12 +- .../return-requirements/purpose.presenter.js | 6 +- app/routes/return-requirement.routes.js | 48 ++++---- .../fetch-abstraction-data.service.js | 0 .../generate-from-abstraction-data.service.js | 0 .../method.service.js} | 10 +- .../submit-method.service.js} | 28 ++--- .../return-requirements/purpose.service.js | 2 +- ...setup.validator.js => method.validator.js} | 8 +- .../{setup.njk => method.njk} | 8 +- .../return-requirements.controller.test.js | 112 +++++++++--------- ...enter.test.js => method.presenter.test.js} | 34 +++--- .../purpose.presenter.test.js | 6 +- .../generate-return-version.service.test.js | 4 +- .../fetch-abstraction-data.service.test.js | 2 +- ...rate-from-abstraction-data.service.test.js | 4 +- .../method.service.test.js} | 10 +- .../submit-method.service.test.js} | 30 ++--- .../purpose.service.test.js | 2 +- .../submit-purpose.service.test.js | 4 +- ...dator.test.js => method.validator.test.js} | 16 +-- 22 files changed, 200 insertions(+), 200 deletions(-) rename app/presenters/return-requirements/{setup.presenter.js => method.presenter.js} (61%) rename app/services/return-requirements/{setup => method}/fetch-abstraction-data.service.js (100%) rename app/services/return-requirements/{setup => method}/generate-from-abstraction-data.service.js (100%) rename app/services/return-requirements/{setup/setup.service.js => method/method.service.js} (78%) rename app/services/return-requirements/{setup/submit-setup.service.js => method/submit-method.service.js} (70%) rename app/validators/return-requirements/{setup.validator.js => method.validator.js} (87%) rename app/views/return-requirements/{setup.njk => method.njk} (89%) rename test/presenters/return-requirements/{setup.presenter.test.js => method.presenter.test.js} (72%) rename test/services/return-requirements/{setup => method}/fetch-abstraction-data.service.test.js (98%) rename test/services/return-requirements/{setup => method}/generate-from-abstraction-data.service.test.js (98%) rename test/services/return-requirements/{setup/setup.service.test.js => method/method.service.test.js} (84%) rename test/services/return-requirements/{setup/submit-setup.service.test.js => method/submit-method.service.test.js} (80%) rename test/validators/return-requirements/{setup.validator.test.js => method.validator.test.js} (64%) diff --git a/app/controllers/return-requirements.controller.js b/app/controllers/return-requirements.controller.js index 5e2881d26c..f61f3324d3 100644 --- a/app/controllers/return-requirements.controller.js +++ b/app/controllers/return-requirements.controller.js @@ -16,6 +16,7 @@ const ExistingService = require('../services/return-requirements/existing.servic const FeatureFlagsConfig = require('../../config/feature-flags.config.js') const FrequencyCollectedService = require('../services/return-requirements/frequency-collected.service.js') const FrequencyReportedService = require('../services/return-requirements/frequency-reported.service.js') +const MethodService = require('../services/return-requirements/method/method.service.js') const NoReturnsRequiredService = require('../services/return-requirements/no-returns-required.service.js') const NoteService = require('../services/return-requirements/note.service.js') const PointsService = require('../services/return-requirements/points.service.js') @@ -23,7 +24,6 @@ const RemoveService = require('../services/return-requirements/remove.service.js const ReturnsCycleService = require('../services/return-requirements/returns-cycle.service.js') const SelectPurposeService = require('../services/return-requirements/purpose.service.js') const SelectReasonService = require('../services/return-requirements/reason.service.js') -const SetupService = require('../services/return-requirements/setup/setup.service.js') const SiteDescriptionService = require('../services/return-requirements/site-description.service.js') const StartDateService = require('../services/return-requirements/start-date.service.js') const SubmitAbstractionPeriod = require('../services/return-requirements/submit-abstraction-period.service.js') @@ -34,6 +34,7 @@ const SubmitCheckService = require('../services/return-requirements/submit-check const SubmitExistingService = require('../services/return-requirements/submit-existing.service.js') const SubmitFrequencyCollectedService = require('../services/return-requirements/submit-frequency-collected.service.js') const SubmitFrequencyReportedService = require('../services/return-requirements/submit-frequency-reported.service.js') +const SubmitMethodService = require('../services/return-requirements/method/submit-method.service.js') const SubmitNoReturnsRequiredService = require('../services/return-requirements/submit-no-returns-required.service.js') const SubmitNoteService = require('../services/return-requirements/submit-note.service.js') const SubmitPointsService = require('../services/return-requirements/submit-points.service.js') @@ -41,7 +42,6 @@ const SubmitPurposeService = require('../services/return-requirements/submit-pur const SubmitReasonService = require('../services/return-requirements/submit-reason.service.js') const SubmitRemoveService = require('../services/return-requirements/submit-remove.service.js') const SubmitReturnsCycleService = require('../services/return-requirements/submit-returns-cycle.service.js') -const SubmitSetupService = require('../services/return-requirements/setup/submit-setup.service.js') const SubmitSiteDescriptionService = require('../services/return-requirements/submit-site-description.service.js') const SubmitStartDateService = require('../services/return-requirements/submit-start-date.service.js') const ViewService = require('../services/return-requirements/view.service.js') @@ -150,6 +150,16 @@ async function frequencyReported (request, h) { }) } +async function method (request, h) { + const { sessionId } = request.params + + const pageData = await MethodService.go(sessionId) + + return h.view('return-requirements/method.njk', { + ...pageData + }) +} + async function noReturnsRequired (request, h) { const { sessionId } = request.params @@ -220,16 +230,6 @@ async function returnsCycle (request, h) { }) } -async function setup (request, h) { - const { sessionId } = request.params - - const pageData = await SetupService.go(sessionId) - - return h.view('return-requirements/setup.njk', { - ...pageData - }) -} - async function siteDescription (request, h) { const { requirementIndex, sessionId } = request.params @@ -356,6 +356,18 @@ async function submitFrequencyReported (request, h) { return h.redirect(`/system/return-requirements/${sessionId}/agreements-exceptions/${requirementIndex}`) } +async function submitMethod (request, h) { + const { sessionId } = request.params + + const pageData = await SubmitMethodService.go(sessionId, request.payload) + + if (pageData.error) { + return h.view('return-requirements/method.njk', pageData) + } + + return h.redirect(`/system/return-requirements/${sessionId}/${pageData.redirect}`) +} + async function submitNoReturnsRequired (request, h) { const { params: { sessionId }, payload, yar } = request @@ -426,7 +438,7 @@ async function submitReason (request, h) { return h.redirect(`/system/return-requirements/${sessionId}/check`) } - return h.redirect(`/system/return-requirements/${sessionId}/setup`) + return h.redirect(`/system/return-requirements/${sessionId}/method`) } async function submitRemove (request, h) { @@ -453,18 +465,6 @@ async function submitReturnsCycle (request, h) { return h.redirect(`/system/return-requirements/${sessionId}/site-description/${requirementIndex}`) } -async function submitSetup (request, h) { - const { sessionId } = request.params - - const pageData = await SubmitSetupService.go(sessionId, request.payload) - - if (pageData.error) { - return h.view('return-requirements/setup.njk', pageData) - } - - return h.redirect(`/system/return-requirements/${sessionId}/${pageData.redirect}`) -} - async function submitSiteDescription (request, h) { const { params: { requirementIndex, sessionId }, payload, yar } = request @@ -522,6 +522,7 @@ module.exports = { existing, frequencyCollected, frequencyReported, + method, noReturnsRequired, note, points, @@ -529,7 +530,6 @@ module.exports = { reason, remove, returnsCycle, - setup, siteDescription, startDate, submitAbstractionPeriod, @@ -540,6 +540,7 @@ module.exports = { submitExisting, submitFrequencyCollected, submitFrequencyReported, + submitMethod, submitNoReturnsRequired, submitNote, submitPoints, @@ -547,7 +548,6 @@ module.exports = { submitReason, submitRemove, submitReturnsCycle, - submitSetup, submitSiteDescription, submitStartDate, view diff --git a/app/presenters/return-requirements/setup.presenter.js b/app/presenters/return-requirements/method.presenter.js similarity index 61% rename from app/presenters/return-requirements/setup.presenter.js rename to app/presenters/return-requirements/method.presenter.js index f466832ab2..72131667f7 100644 --- a/app/presenters/return-requirements/setup.presenter.js +++ b/app/presenters/return-requirements/method.presenter.js @@ -1,26 +1,26 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/setup` page - * @module SetupPresenter + * Formats data for the `/return-requirements/{sessionId}/method` page + * @module MethodPresenter */ /** - * Formats data for the `/return-requirements/{sessionId}/setup` page + * Formats data for the `/return-requirements/{sessionId}/method` page * * @param {module:SessionModel} session - The returns requirements session instance * * @returns {object} - The data formatted for the view template */ function go (session) { - const { id: sessionId, licence, setup } = session + const { id: sessionId, licence, method } = session return { backLink: `/system/return-requirements/${sessionId}/reason`, displayCopyExisting: licence.returnVersions.length > 0, licenceRef: licence.licenceRef, - sessionId, - setup: setup ?? null + method: method ?? null, + sessionId } } diff --git a/app/presenters/return-requirements/purpose.presenter.js b/app/presenters/return-requirements/purpose.presenter.js index 93c504ae2f..026ecab724 100644 --- a/app/presenters/return-requirements/purpose.presenter.js +++ b/app/presenters/return-requirements/purpose.presenter.js @@ -3,7 +3,7 @@ /** * Formats data for the `/return-requirements/{sessionId}/purpose` page * @module PurposePresenter -*/ + */ /** * Formats data for the `/return-requirements/{sessionId}/purpose` page @@ -31,7 +31,7 @@ function _backLink (session) { const { checkPageVisited, id, requirements } = session // NOTE: Purpose is the first page in the manual setup journey. So, when a user first comes through, we want to allow - // them to go back to `/setup`. Once they've got to the `/check` page they may return because they clicked the + // them to go back to `/method`. Once they've got to the `/check` page they may return because they clicked the // 'Change' link for the purpose. When this happens, `checkPageVisited` will be true and 'Back' needs to take them // back there. // @@ -43,7 +43,7 @@ function _backLink (session) { return `/system/return-requirements/${id}/check` } - return `/system/return-requirements/${id}/setup` + return `/system/return-requirements/${id}/method` } function _purposes (licencePurposes, requirementPurposes) { diff --git a/app/routes/return-requirement.routes.js b/app/routes/return-requirement.routes.js index cf69db6d65..17494d5278 100644 --- a/app/routes/return-requirement.routes.js +++ b/app/routes/return-requirement.routes.js @@ -232,6 +232,30 @@ const routes = [ } } }, + { + method: 'GET', + path: '/return-requirements/{sessionId}/method', + options: { + handler: ReturnRequirementsController.method, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/{sessionId}/method', + options: { + handler: ReturnRequirementsController.submitMethod, + auth: { + access: { + scope: ['billing'] + } + } + } + }, { method: 'GET', path: '/return-requirements/{sessionId}/no-returns-required', @@ -400,30 +424,6 @@ const routes = [ } } }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/setup', - options: { - handler: ReturnRequirementsController.setup, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/setup', - options: { - handler: ReturnRequirementsController.submitSetup, - auth: { - access: { - scope: ['billing'] - } - } - } - }, { method: 'GET', path: '/return-requirements/{sessionId}/site-description/{requirementIndex}', diff --git a/app/services/return-requirements/setup/fetch-abstraction-data.service.js b/app/services/return-requirements/method/fetch-abstraction-data.service.js similarity index 100% rename from app/services/return-requirements/setup/fetch-abstraction-data.service.js rename to app/services/return-requirements/method/fetch-abstraction-data.service.js diff --git a/app/services/return-requirements/setup/generate-from-abstraction-data.service.js b/app/services/return-requirements/method/generate-from-abstraction-data.service.js similarity index 100% rename from app/services/return-requirements/setup/generate-from-abstraction-data.service.js rename to app/services/return-requirements/method/generate-from-abstraction-data.service.js diff --git a/app/services/return-requirements/setup/setup.service.js b/app/services/return-requirements/method/method.service.js similarity index 78% rename from app/services/return-requirements/setup/setup.service.js rename to app/services/return-requirements/method/method.service.js index 6f93b0e744..28a41e9857 100644 --- a/app/services/return-requirements/setup/setup.service.js +++ b/app/services/return-requirements/method/method.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/setup` page - * @module SetupService + * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/method` page + * @module MethodService */ -const SetupPresenter = require('../../../presenters/return-requirements/setup.presenter.js') +const MethodPresenter = require('../../../presenters/return-requirements/method.presenter.js') const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/setup` page + * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/method` page * * Supports generating the data needed for the select reason page in the return requirements setup journey. It * fetches the current session record and combines it with the radio buttons and other information needed for the form. @@ -21,7 +21,7 @@ const SessionModel = require('../../../models/session.model.js') async function go (sessionId) { const session = await SessionModel.query().findById(sessionId) - const formattedData = SetupPresenter.go(session) + const formattedData = MethodPresenter.go(session) return { activeNavBar: 'search', diff --git a/app/services/return-requirements/setup/submit-setup.service.js b/app/services/return-requirements/method/submit-method.service.js similarity index 70% rename from app/services/return-requirements/setup/submit-setup.service.js rename to app/services/return-requirements/method/submit-method.service.js index 61278dd106..96257d0a68 100644 --- a/app/services/return-requirements/setup/submit-setup.service.js +++ b/app/services/return-requirements/method/submit-method.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/setup` page + * Orchestrates validating the data for `/return-requirements/{sessionId}/method` page * @module SubmitSetupService */ const GenerateFromAbstractionDataService = require('./generate-from-abstraction-data.service.js') const SessionModel = require('../../../models/session.model.js') -const SetupPresenter = require('../../../presenters/return-requirements/setup.presenter.js') -const SetupValidator = require('../../../validators/return-requirements/setup.validator.js') +const MethodPresenter = require('../../../presenters/return-requirements/method.presenter.js') +const MethodValidator = require('../../../validators/return-requirements/method.validator.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/setup` page + * Orchestrates validating the data for `/return-requirements/{sessionId}/method` page * * It first retrieves the session instance for the returns requirements journey in progress. * @@ -34,11 +34,11 @@ async function go (sessionId, payload) { await _save(session, payload) return { - redirect: _redirect(payload.setup) + redirect: _redirect(payload.method) } } - const formattedData = SetupPresenter.go(session, payload) + const formattedData = MethodPresenter.go(session, payload) return { activeNavBar: 'search', @@ -48,12 +48,12 @@ async function go (sessionId, payload) { } } -function _redirect (setup) { - if (setup === 'use-abstraction-data') { +function _redirect (method) { + if (method === 'use-abstraction-data') { return 'check' } - if (setup === 'use-existing-requirements') { + if (method === 'use-existing-requirements') { return 'existing' } @@ -61,12 +61,12 @@ function _redirect (setup) { } async function _save (session, payload) { - session.setup = payload.setup + session.method = payload.method - // If the user selected the option to use abstraction data to setup the return requirements we use - // GenerateFromAbstractionDataService to fetch the licence's abstraction data and transform it into return + // If the user selected the method 'Start by using abstraction data' to setup the return requirements we use + // `GenerateFromAbstractionDataService` to fetch the licence's abstraction data and transform it into return // requirements we can persist in the session - if (payload.setup === 'use-abstraction-data') { + if (payload.method === 'use-abstraction-data') { session.requirements = await GenerateFromAbstractionDataService.go(session.licence.id) } @@ -74,7 +74,7 @@ async function _save (session, payload) { } function _validate (payload) { - const validation = SetupValidator.go(payload) + const validation = MethodValidator.go(payload) if (!validation.error) { return null diff --git a/app/services/return-requirements/purpose.service.js b/app/services/return-requirements/purpose.service.js index 9e10aa83ea..955acbcbdf 100644 --- a/app/services/return-requirements/purpose.service.js +++ b/app/services/return-requirements/purpose.service.js @@ -19,7 +19,7 @@ const SessionModel = require('../../models/session.model.js') * @param {string} requirementIndex - The index of the requirement being added or changed * * @returns {Promise} The view data for the purpose page -*/ + */ async function go (sessionId, requirementIndex) { const session = await SessionModel.query().findById(sessionId) const purposesData = await FetchPurposesService.go(session.licence.id) diff --git a/app/validators/return-requirements/setup.validator.js b/app/validators/return-requirements/method.validator.js similarity index 87% rename from app/validators/return-requirements/setup.validator.js rename to app/validators/return-requirements/method.validator.js index 99e38641fd..cc83a00481 100644 --- a/app/validators/return-requirements/setup.validator.js +++ b/app/validators/return-requirements/method.validator.js @@ -1,7 +1,7 @@ 'use strict' /** - * Validates data submitted for the `/return-requirements/{sessionId}/setup` page + * Validates data submitted for the `/return-requirements/{sessionId}/method` page * @module SetupValidator */ @@ -14,9 +14,9 @@ const VALID_VALUES = [ ] /** - * Validates data submitted for the `/return-requirements/{sessionId}/setup` page + * Validates data submitted for the `/return-requirements/{sessionId}/method` page * - * @param {object} payload - The payload from the request to be validated + * @param {object} data - The payload from the request to be validated * * @returns {object} the result from calling Joi's schema.validate(). It will be an object with a `value:` property. If * any errors are found the `error:` property will also exist detailing what the issues were @@ -24,7 +24,7 @@ const VALID_VALUES = [ function go (data) { const errorMessage = 'Select how you want to set up the requirements for returns' const schema = Joi.object({ - setup: Joi.string() + method: Joi.string() .required() .valid(...VALID_VALUES) .messages({ diff --git a/app/views/return-requirements/setup.njk b/app/views/return-requirements/method.njk similarity index 89% rename from app/views/return-requirements/setup.njk rename to app/views/return-requirements/method.njk index 7cbf130bda..583976ba5c 100644 --- a/app/views/return-requirements/setup.njk +++ b/app/views/return-requirements/method.njk @@ -32,7 +32,7 @@ {{ govukRadios({ - name: "setup", + name: "method", errorMessage: error, fieldset: { legend: { @@ -45,12 +45,12 @@ { value: "use-abstraction-data", text: "Start by using abstraction data", - checked: "use-abstraction-data" === setup + checked: "use-abstraction-data" === method }, { value: "use-existing-requirements", text: "Copy existing requirements", - checked: "use-existing-requirements" === setup + checked: "use-existing-requirements" === method } if displayCopyExisting, { divider: "or" @@ -58,7 +58,7 @@ { value: "set-up-manually", text: "Set up manually", - checked: "set-up-manually" === setup + checked: "set-up-manually" === method } ] }) }} diff --git a/test/controllers/return-requirements.controller.test.js b/test/controllers/return-requirements.controller.test.js index 6209b7273c..f77632f42e 100644 --- a/test/controllers/return-requirements.controller.test.js +++ b/test/controllers/return-requirements.controller.test.js @@ -18,9 +18,10 @@ const AgreementsExceptionService = require('../../app/services/return-requiremen const CancelService = require('../../app/services/return-requirements/cancel.service.js') const CheckService = require('../../app/services/return-requirements/check.service.js') const DeleteNoteService = require('../../app/services/return-requirements/delete-note.service.js') +const ExistingService = require('../../app/services/return-requirements/existing.service.js') const FrequencyCollectedService = require('../../app/services/return-requirements/frequency-collected.service.js') const FrequencyReportedService = require('../../app/services/return-requirements/frequency-reported.service.js') -const ExistingService = require('../../app/services/return-requirements/existing.service.js') +const MethodService = require('../../app/services/return-requirements/method/method.service.js') const NoReturnsRequiredService = require('../../app/services/return-requirements/no-returns-required.service.js') const NoteService = require('../../app/services/return-requirements/note.service.js') const PointsService = require('../../app/services/return-requirements/points.service.js') @@ -28,7 +29,6 @@ const RemoveService = require('../../app/services/return-requirements/remove.ser const ReturnCycleService = require('../../app/services/return-requirements/returns-cycle.service.js') const SelectPurposeService = require('../../app/services/return-requirements/purpose.service.js') const SelectReasonService = require('../../app/services/return-requirements/reason.service.js') -const SetupService = require('../../app/services/return-requirements/setup/setup.service.js') const SiteDescriptionService = require('../../app/services/return-requirements/site-description.service.js') const StartDateService = require('../../app/services/return-requirements/start-date.service.js') const SubmitAbstractionPeriod = require('../../app/services/return-requirements/submit-abstraction-period.service.js') @@ -36,12 +36,12 @@ const SubmitAgreementsExceptions = require('../../app/services/return-requiremen const SubmitExistingService = require('../../app/services/return-requirements/submit-existing.service.js') const SubmitFrequencyCollectedService = require('../../app/services/return-requirements/submit-frequency-collected.service.js') const SubmitFrequencyReportedService = require('../../app/services/return-requirements/submit-frequency-reported.service.js') +const SubmitMethodService = require('../../app/services/return-requirements/method/submit-method.service.js') const SubmitNoReturnsRequiredService = require('../../app/services/return-requirements/submit-no-returns-required.service.js') const SubmitPointsService = require('../../app/services/return-requirements/submit-points.service.js') const SubmitPurposeService = require('../../app/services/return-requirements/submit-purpose.service.js') const SubmitReasonService = require('../../app/services/return-requirements/submit-reason.service.js') const SubmitReturnsCycleService = require('../../app/services/return-requirements/submit-returns-cycle.service.js') -const SubmitSetupService = require('../../app/services/return-requirements/setup/submit-setup.service.js') const SubmitSiteDescriptionService = require('../../app/services/return-requirements/submit-site-description.service.js') const SubmitStartDateService = require('../../app/services/return-requirements/submit-start-date.service.js') const ViewService = require('../../app/services/return-requirements/view.service.js') @@ -489,6 +489,57 @@ describe('Return requirements controller', () => { }) }) + describe('/return-requirements/{sessionId}/method', () => { + const path = 'method' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(MethodService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'How do you want to set up the requirements for returns?' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('How do you want to set up the requirements for returns?') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitMethodService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the validation passes', () => { + beforeEach(async () => { + Sinon.stub(SubmitMethodService, 'go').resolves({ redirect: 'page-data-redirect' }) + }) + + it('redirects to /system/return-requirements/{sessionId}/{pageData.redirect}', async () => { + const response = await server.inject(_postOptions(path)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/page-data-redirect') + }) + }) + }) + }) + }) + describe('/return-requirements/{sessionId}/no-returns-required', () => { const path = 'no-returns-required' @@ -708,11 +759,11 @@ describe('Return requirements controller', () => { Sinon.stub(SubmitReasonService, 'go').resolves({}) }) - it('redirects to /system/return-requirements/{sessionId}/setup', async () => { + it('redirects to /system/return-requirements/{sessionId}/method', async () => { const response = await server.inject(_postOptions(path)) expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/setup') + expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/method') }) }) @@ -817,57 +868,6 @@ describe('Return requirements controller', () => { }) }) - describe('/return-requirements/{sessionId}/setup', () => { - const path = 'setup' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(SetupService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'How do you want to set up the requirements for returns?' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('How do you want to set up the requirements for returns?') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitSetupService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the validation passes', () => { - beforeEach(async () => { - Sinon.stub(SubmitSetupService, 'go').resolves({ redirect: 'page-data-redirect' }) - }) - - it('redirects to /system/return-requirements/{sessionId}/{pageData.redirect}', async () => { - const response = await server.inject(_postOptions(path)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/page-data-redirect') - }) - }) - }) - }) - }) - describe('/return-requirements/{sessionId}/site-description', () => { const path = 'site-description' diff --git a/test/presenters/return-requirements/setup.presenter.test.js b/test/presenters/return-requirements/method.presenter.test.js similarity index 72% rename from test/presenters/return-requirements/setup.presenter.test.js rename to test/presenters/return-requirements/method.presenter.test.js index e092a52d81..1dda6e29c6 100644 --- a/test/presenters/return-requirements/setup.presenter.test.js +++ b/test/presenters/return-requirements/method.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const SetupPresenter = require('../../../app/presenters/return-requirements/setup.presenter.js') +const MethodPresenter = require('../../../app/presenters/return-requirements/method.presenter.js') -describe('Return Requirements - Setup presenter', () => { +describe('Return Requirements - Method presenter', () => { let session beforeEach(() => { @@ -39,21 +39,21 @@ describe('Return Requirements - Setup presenter', () => { describe('when provided with a session', () => { it('correctly presents the data', () => { - const result = SetupPresenter.go(session) + const result = MethodPresenter.go(session) expect(result).to.equal({ backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/reason', displayCopyExisting: true, licenceRef: '01/ABC', sessionId: '61e07498-f309-4829-96a9-72084a54996d', - setup: null + method: null }) }) }) describe('the "backLink" property', () => { it('returns a link back to the "start-date" page', () => { - const result = SetupPresenter.go(session) + const result = MethodPresenter.go(session) expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/reason') }) @@ -62,7 +62,7 @@ describe('Return Requirements - Setup presenter', () => { describe('the "displayCopyExisting" property', () => { describe('when the licence has return versions (something to copy from)', () => { it('returns true', () => { - const result = SetupPresenter.go(session) + const result = MethodPresenter.go(session) expect(result.displayCopyExisting).to.be.true() }) @@ -74,31 +74,31 @@ describe('Return Requirements - Setup presenter', () => { }) it('returns false', () => { - const result = SetupPresenter.go(session) + const result = MethodPresenter.go(session) expect(result.displayCopyExisting).to.be.false() }) }) }) - describe('the "setup" property', () => { - describe('when the user has previously submitted a setup option', () => { + describe('the "method" property', () => { + describe('when the user has previously submitted a setup method', () => { beforeEach(() => { - session.setup = 'set-up-manually' + session.method = 'set-up-manually' }) - it('returns a populated setup', () => { - const result = SetupPresenter.go(session) + it('returns a populated method', () => { + const result = MethodPresenter.go(session) - expect(result.setup).to.equal('set-up-manually') + expect(result.method).to.equal('set-up-manually') }) }) - describe('when the user has not previously submitted a setup option', () => { - it('returns an empty setup', () => { - const result = SetupPresenter.go(session) + describe('when the user has not previously submitted a setup method', () => { + it('returns an empty method', () => { + const result = MethodPresenter.go(session) - expect(result.setup).to.be.null() + expect(result.method).to.be.null() }) }) }) diff --git a/test/presenters/return-requirements/purpose.presenter.test.js b/test/presenters/return-requirements/purpose.presenter.test.js index c507e9231d..418add894e 100644 --- a/test/presenters/return-requirements/purpose.presenter.test.js +++ b/test/presenters/return-requirements/purpose.presenter.test.js @@ -47,7 +47,7 @@ describe('Return Requirements - Purpose presenter', () => { const result = PurposePresenter.go(session, requirementIndex, licencePurposes) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/setup', + backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/method', licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', purposes: [ @@ -92,10 +92,10 @@ describe('Return Requirements - Purpose presenter', () => { }) describe('when the user has come from somewhere else', () => { - it('returns a link back to the "setup" page', () => { + it('returns a link back to the "method" page', () => { const result = PurposePresenter.go(session, requirementIndex, licencePurposes) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/setup') + expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/method') }) }) }) diff --git a/test/services/return-requirements/generate-return-version.service.test.js b/test/services/return-requirements/generate-return-version.service.test.js index cf60d9337c..43c9d6b02e 100644 --- a/test/services/return-requirements/generate-return-version.service.test.js +++ b/test/services/return-requirements/generate-return-version.service.test.js @@ -38,7 +38,7 @@ describe('Generate Return Version service', () => { beforeEach(async () => { licenceId = generateUUID() sessionData = { - setup: 'use-existing-requirements', + method: 'use-existing-requirements', reason: 'minor-change', journey: 'returns-required', licence: { @@ -102,7 +102,7 @@ describe('Generate Return Version service', () => { content: 'This is a test note', userEmail: 'admin-internal@wrls.gov.uk' }, - setup: 'set-up-manually', + method: 'set-up-manually', reason: 'change-to-special-agreement', journey: 'returns-required', licence: { diff --git a/test/services/return-requirements/setup/fetch-abstraction-data.service.test.js b/test/services/return-requirements/method/fetch-abstraction-data.service.test.js similarity index 98% rename from test/services/return-requirements/setup/fetch-abstraction-data.service.test.js rename to test/services/return-requirements/method/fetch-abstraction-data.service.test.js index 774a788d38..c14934fc85 100644 --- a/test/services/return-requirements/setup/fetch-abstraction-data.service.test.js +++ b/test/services/return-requirements/method/fetch-abstraction-data.service.test.js @@ -12,7 +12,7 @@ const LicenceAbstractionDataSeeder = require('../../../support/seeders/licence-a const LicenceAgreementModel = require('../../../../app/models/licence-agreement.model.js') // Thing under test -const FetchAbstractionDataService = require('../../../../app/services/return-requirements/setup/fetch-abstraction-data.service.js') +const FetchAbstractionDataService = require('../../../../app/services/return-requirements/method/fetch-abstraction-data.service.js') describe('Return Requirements - Fetch Abstraction Data service', () => { let seedData diff --git a/test/services/return-requirements/setup/generate-from-abstraction-data.service.test.js b/test/services/return-requirements/method/generate-from-abstraction-data.service.test.js similarity index 98% rename from test/services/return-requirements/setup/generate-from-abstraction-data.service.test.js rename to test/services/return-requirements/method/generate-from-abstraction-data.service.test.js index a0928a5d8c..b3cd0f9599 100644 --- a/test/services/return-requirements/setup/generate-from-abstraction-data.service.test.js +++ b/test/services/return-requirements/method/generate-from-abstraction-data.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const FetchAbstractionDataService = require('../../../../app/services/return-requirements/setup/fetch-abstraction-data.service.js') +const FetchAbstractionDataService = require('../../../../app/services/return-requirements/method/fetch-abstraction-data.service.js') const LicenceModel = require('../../../../app/models/licence.model.js') const LicenceVersionPurposeModel = require('../../../../app/models/licence-version-purpose.model.js') // Thing under test -const GenerateFromAbstractionDataService = require('../../../../app/services/return-requirements/setup/generate-from-abstraction-data.service.js') +const GenerateFromAbstractionDataService = require('../../../../app/services/return-requirements/method/generate-from-abstraction-data.service.js') describe('Return Requirements - Generate From Abstraction Data service', () => { const licenceId = 'af0e52a3-db43-4add-b388-1b2564a437c7' diff --git a/test/services/return-requirements/setup/setup.service.test.js b/test/services/return-requirements/method/method.service.test.js similarity index 84% rename from test/services/return-requirements/setup/setup.service.test.js rename to test/services/return-requirements/method/method.service.test.js index 16cf289872..0427f38475 100644 --- a/test/services/return-requirements/setup/setup.service.test.js +++ b/test/services/return-requirements/method/method.service.test.js @@ -11,9 +11,9 @@ const { expect } = Code const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const SetupService = require('../../../../app/services/return-requirements/setup/setup.service.js') +const MethodService = require('../../../../app/services/return-requirements/method/method.service.js') -describe('Return Requirements - Setup service', () => { +describe('Return Requirements - Method service', () => { let session beforeEach(async () => { @@ -43,13 +43,13 @@ describe('Return Requirements - Setup service', () => { describe('when called', () => { it('fetches the current setup session record', async () => { - const result = await SetupService.go(session.id) + const result = await MethodService.go(session.id) expect(result.sessionId).to.equal(session.id) }) it('returns page data for the view', async () => { - const result = await SetupService.go(session.id) + const result = await MethodService.go(session.id) expect(result).to.equal({ activeNavBar: 'search', @@ -57,7 +57,7 @@ describe('Return Requirements - Setup service', () => { backLink: `/system/return-requirements/${session.id}/reason`, displayCopyExisting: true, licenceRef: '01/ABC', - setup: null + method: null }, { skip: ['sessionId'] }) }) }) diff --git a/test/services/return-requirements/setup/submit-setup.service.test.js b/test/services/return-requirements/method/submit-method.service.test.js similarity index 80% rename from test/services/return-requirements/setup/submit-setup.service.test.js rename to test/services/return-requirements/method/submit-method.service.test.js index 364bdedff6..53cb0a8394 100644 --- a/test/services/return-requirements/setup/submit-setup.service.test.js +++ b/test/services/return-requirements/method/submit-method.service.test.js @@ -12,12 +12,12 @@ const { expect } = Code const SessionHelper = require('../../../support/helpers/session.helper.js') // Things we need to stub -const GenerateFromAbstractionDataService = require('../../../../app/services/return-requirements/setup/generate-from-abstraction-data.service.js') +const GenerateFromAbstractionDataService = require('../../../../app/services/return-requirements/method/generate-from-abstraction-data.service.js') // Thing under test -const SubmitSetupService = require('../../../../app/services/return-requirements/setup/submit-setup.service.js') +const SubmitMethodService = require('../../../../app/services/return-requirements/method/submit-method.service.js') -describe('Return Requirements - Submit Setup service', () => { +describe('Return Requirements - Submit Method service', () => { let payload let session @@ -54,29 +54,29 @@ describe('Return Requirements - Submit Setup service', () => { describe('with a valid payload', () => { beforeEach(() => { payload = { - setup: 'use-abstraction-data' + method: 'use-abstraction-data' } Sinon.stub(GenerateFromAbstractionDataService, 'go').resolves(_generatedReturnRequirements()) }) it('saves the submitted value', async () => { - await SubmitSetupService.go(session.id, payload) + await SubmitMethodService.go(session.id, payload) const refreshedSession = await session.$query() - expect(refreshedSession.setup).to.equal('use-abstraction-data') + expect(refreshedSession.method).to.equal('use-abstraction-data') }) describe('and the user has selected to use abstraction data', () => { it('returns the route to check page', async () => { - const result = await SubmitSetupService.go(session.id, payload) + const result = await SubmitMethodService.go(session.id, payload) expect(result.redirect).to.equal('check') }) it('returns the route to check page', async () => { - await SubmitSetupService.go(session.id, payload) + await SubmitMethodService.go(session.id, payload) const refreshedSession = await session.$query() @@ -87,12 +87,12 @@ describe('Return Requirements - Submit Setup service', () => { describe('and the user has selected to copy an existing requirement', () => { beforeEach(() => { payload = { - setup: 'use-existing-requirements' + method: 'use-existing-requirements' } }) it('returns the route for the select an existing requirement page', async () => { - const result = await SubmitSetupService.go(session.id, payload) + const result = await SubmitMethodService.go(session.id, payload) expect(result.redirect).to.equal('existing') }) @@ -101,12 +101,12 @@ describe('Return Requirements - Submit Setup service', () => { describe('and the user has selected to setup the requirement manually', () => { beforeEach(() => { payload = { - setup: 'set-up-manually' + method: 'set-up-manually' } }) it('returns the route for the select purpose page', async () => { - const result = await SubmitSetupService.go(session.id, payload) + const result = await SubmitMethodService.go(session.id, payload) expect(result.redirect).to.equal('purpose/0') }) @@ -119,7 +119,7 @@ describe('Return Requirements - Submit Setup service', () => { }) it('returns page data for the view', async () => { - const result = await SubmitSetupService.go(session.id, payload) + const result = await SubmitMethodService.go(session.id, payload) expect(result).to.equal({ activeNavBar: 'search', @@ -127,13 +127,13 @@ describe('Return Requirements - Submit Setup service', () => { backLink: `/system/return-requirements/${session.id}/reason`, displayCopyExisting: true, licenceRef: '01/ABC', - setup: null + method: null }, { skip: ['sessionId', 'error'] }) }) describe('because the user has not submitted anything', () => { it('includes an error for the input element', async () => { - const result = await SubmitSetupService.go(session.id, payload) + const result = await SubmitMethodService.go(session.id, payload) expect(result.error).to.equal({ text: 'Select how you want to set up the requirements for returns' diff --git a/test/services/return-requirements/purpose.service.test.js b/test/services/return-requirements/purpose.service.test.js index 82c327f15c..ceb3974ebe 100644 --- a/test/services/return-requirements/purpose.service.test.js +++ b/test/services/return-requirements/purpose.service.test.js @@ -70,7 +70,7 @@ describe('Return Requirements - Purpose service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select the purpose for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/setup`, + backLink: `/system/return-requirements/${session.id}/method`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', purposes: [ diff --git a/test/services/return-requirements/submit-purpose.service.test.js b/test/services/return-requirements/submit-purpose.service.test.js index a156a5ef6a..b0e57e489f 100644 --- a/test/services/return-requirements/submit-purpose.service.test.js +++ b/test/services/return-requirements/submit-purpose.service.test.js @@ -132,7 +132,7 @@ describe('Return Requirements - Submit Purpose service', () => { text: 'Select any purpose for the requirements for returns' }, pageTitle: 'Select the purpose for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/setup`, + backLink: `/system/return-requirements/${session.id}/method`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', purposes: [ @@ -161,7 +161,7 @@ describe('Return Requirements - Submit Purpose service', () => { text: 'Purpose description must be 100 characters or less' }, pageTitle: 'Select the purpose for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/setup`, + backLink: `/system/return-requirements/${session.id}/method`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', purposes: [ diff --git a/test/validators/return-requirements/setup.validator.test.js b/test/validators/return-requirements/method.validator.test.js similarity index 64% rename from test/validators/return-requirements/setup.validator.test.js rename to test/validators/return-requirements/method.validator.test.js index 0a7bc1a594..6703e09c63 100644 --- a/test/validators/return-requirements/setup.validator.test.js +++ b/test/validators/return-requirements/method.validator.test.js @@ -8,22 +8,22 @@ const { describe, it } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const SetupValidator = require('../../../app/validators/return-requirements/setup.validator.js') +const MethodValidator = require('../../../app/validators/return-requirements/method.validator.js') -describe('Setup validator', () => { +describe('Method validator', () => { describe('when valid data is provided', () => { it('confirms the data is valid', () => { - const result = SetupValidator.go({ setup: 'use-abstraction-data' }) + const result = MethodValidator.go({ method: 'use-abstraction-data' }) expect(result.value).to.exist() expect(result.error).not.to.exist() }) }) - describe('when valid data is provided', () => { - describe('because no "setup" is given', () => { + describe('when invalid data is provided', () => { + describe('because no "method" is given', () => { it('fails validation', () => { - const result = SetupValidator.go({ setup: '' }) + const result = MethodValidator.go({ method: '' }) expect(result.value).to.exist() expect(result.error).to.exist() @@ -31,9 +31,9 @@ describe('Setup validator', () => { }) }) - describe('because an unknown "setup" is given', () => { + describe('because an unknown "method" is given', () => { it('fails validation', () => { - const result = SetupValidator.go({ setup: 'just-because' }) + const result = MethodValidator.go({ method: 'just-because' }) expect(result.value).to.exist() expect(result.error).to.exist() From 0e88d29cd13ef07993b84f57bace1b2f77907b15 Mon Sep 17 00:00:00 2001 From: Alan Cruikshanks Date: Sun, 20 Oct 2024 21:48:13 +0100 Subject: [PATCH 3/5] Move Return reqs. pages into setup folder (#1429) https://github.com/DEFRA/water-abstraction-team/issues/126 We are on the cusp of our work to migrate the management of return versions (requirements) from NALD to WRLS going 'live'. This is a significant feature that has seen many iterations since we started. So, before it gets used in earnest, we want to ensure it is 'ship shape and Bristol fashion'! A crucial part of the tidy-up is moving all modules related to setting up a return version into a `/setup` subfolder, using the same pattern we used for setting up a bill run. We also move the routes to `/return-requirements/setup/{sessionId`. This helps us distinguish pages used solely to 'set up' a new return requirement from those used to view and manage them. --- app/controllers/licences.controller.js | 6 +- .../return-requirements-setup.controller.js | 543 +++++++++ .../return-requirements.controller.js | 537 +-------- app/plugins/router.plugin.js | 6 +- app/presenters/licences/set-up.presenter.js | 2 +- .../view-licence-history.presenter.js | 2 +- .../abstraction-period.presenter.js | 10 +- ...additional-submission-options.presenter.js | 8 +- .../agreements-exceptions.presenter.js | 10 +- .../{ => setup}/cancel.presenter.js | 12 +- .../{ => setup/check}/check.presenter.js | 17 +- .../check/returns-requirements.presenter.js | 20 +- .../{ => setup}/existing.presenter.js | 8 +- .../frequency-collected.presenter.js | 10 +- .../frequency-reported.presenter.js | 10 +- .../{ => setup}/method.presenter.js | 6 +- .../no-returns-required.presenter.js | 8 +- .../{ => setup}/note.presenter.js | 6 +- .../{ => setup}/points.presenter.js | 8 +- .../{ => setup}/purpose.presenter.js | 8 +- .../{ => setup}/reason.presenter.js | 8 +- .../{ => setup}/remove.presenter.js | 12 +- .../{ => setup}/returns-cycle.presenter.js | 10 +- .../{ => setup}/site-description.presenter.js | 10 +- .../{ => setup}/start-date.presenter.js | 12 +- .../return-requirements/view.presenter.js | 10 +- app/routes/return-requirement.routes.js | 488 -------- .../return-requirements-setup.routes.js | 476 ++++++++ app/routes/return-requirements.routes.js | 20 + .../fetch-return-version.service.js | 18 +- .../{ => setup}/abstraction-period.service.js | 10 +- .../{ => setup}/add.service.js | 2 +- .../additional-submission-options.service.js | 10 +- .../agreements-exceptions.service.js | 10 +- .../{ => setup}/cancel.service.js | 10 +- .../{ => setup/check}/check.service.js | 12 +- ...ate-return-version-requirements.service.js | 6 +- .../check}/generate-return-version.service.js | 2 +- .../check}/persist-return-version.service.js | 8 +- ...rocess-existing-return-versions.service.js | 2 +- .../{ => setup/check}/submit-check.service.js | 2 +- .../{ => setup}/delete-note.service.js | 10 +- .../{ => setup}/existing.service.js | 8 +- .../fetch-existing-requirements.js | 2 +- .../{ => setup}/fetch-points.service.js | 2 +- .../{ => setup}/fetch-purposes.service.js | 6 +- .../frequency-collected.service.js | 10 +- .../{ => setup}/frequency-reported.service.js | 10 +- ...rate-from-existing-requirements.service.js | 0 .../{ => setup}/initiate-session.service.js | 6 +- .../method/fetch-abstraction-data.service.js | 2 +- .../generate-from-abstraction-data.service.js | 0 .../{ => setup}/method/method.service.js | 8 +- .../method/submit-method.service.js | 10 +- .../no-returns-required.service.js | 8 +- .../{ => setup}/note.service.js | 8 +- .../{ => setup}/points.service.js | 10 +- .../{ => setup}/purpose.service.js | 8 +- .../{ => setup}/reason.service.js | 10 +- .../{ => setup}/remove.service.js | 12 +- .../{ => setup}/returns-cycle.service.js | 10 +- .../{ => setup}/site-description.service.js | 10 +- .../{ => setup}/start-date.service.js | 10 +- .../submit-abstraction-period.service.js | 12 +- ...t-additional-submission-options.service.js | 10 +- .../submit-agreements-exceptions.service.js | 12 +- .../{ => setup}/submit-cancel.service.js | 2 +- .../{ => setup}/submit-existing.service.js | 10 +- .../submit-frequency-collected.service.js | 12 +- .../submit-frequency-reported.service.js | 12 +- .../submit-no-returns-required.service.js | 12 +- .../{ => setup}/submit-note.service.js | 10 +- .../{ => setup}/submit-points.service.js | 14 +- .../{ => setup}/submit-purpose.service.js | 12 +- .../{ => setup}/submit-reason.service.js | 12 +- .../{ => setup}/submit-remove.service.js | 2 +- .../submit-returns-cycle.service.js | 12 +- .../submit-site-description.service.js | 12 +- .../{ => setup}/submit-start-date.service.js | 12 +- .../abstraction-period.validator.js | 2 +- ...additional-submission-options.validator.js | 0 .../agreements-exceptions.validator.js | 0 .../{ => setup}/existing.validator.js | 0 .../frequency-collected.validator.js | 0 .../frequency-reported.validator.js | 0 .../{ => setup}/method.validator.js | 0 .../no-returns-required.validator.js | 0 .../{ => setup}/note.validator.js | 0 .../{ => setup}/points.validator.js | 0 .../{ => setup}/purpose.validator.js | 0 .../{ => setup}/reason.validator.js | 2 +- .../{ => setup}/returns-cycle.validator.js | 0 .../{ => setup}/site-description.validator.js | 0 .../{ => setup}/start-date.validator.js | 2 +- .../{ => setup}/abstraction-period.njk | 0 .../additional-submission-options.njk | 0 .../{ => setup}/agreements-exceptions.njk | 0 .../{ => setup}/approved.njk | 0 .../{ => setup}/cancel.njk | 0 .../return-requirements/{ => setup}/check.njk | 10 +- .../{ => setup}/existing.njk | 0 .../{ => setup}/frequency-collected.njk | 0 .../{ => setup}/frequency-reported.njk | 0 .../{ => setup}/method.njk | 0 .../{ => setup}/no-returns-required.njk | 0 .../return-requirements/{ => setup}/note.njk | 0 .../{ => setup}/points.njk | 0 .../{ => setup}/purpose.njk | 0 .../{ => setup}/reason.njk | 0 .../{ => setup}/remove.njk | 0 .../{ => setup}/returns-cycle.njk | 0 .../{ => setup}/site-description.njk | 0 .../{ => setup}/start-date.njk | 0 test/controllers/licences.controller.test.js | 6 +- ...turn-requirements-setup.controller.test.js | 1038 +++++++++++++++++ .../return-requirements.controller.test.js | 1029 +--------------- .../licences/set-up.presenter.test.js | 4 +- .../view-licence-history.presenter.test.js | 4 +- .../abstraction-period.presenter.test.js | 10 +- ...ional-submission-options.presenter.test.js | 8 +- .../agreements-exceptions.presenter.test.js | 10 +- .../{ => setup}/cancel.presenter.test.js | 6 +- .../{ => setup/check}/check.presenter.test.js | 10 +- .../returns-requirements.presenter.test.js | 6 +- .../{ => setup}/existing.presenter.test.js | 4 +- .../frequency-collected.presenter.test.js | 10 +- .../frequency-reported.presenter.test.js | 10 +- .../{ => setup}/method.presenter.test.js | 8 +- .../no-returns-required.presenter.test.js | 10 +- .../{ => setup}/note.presenter.test.js | 8 +- .../{ => setup}/points.presenter.test.js | 12 +- .../{ => setup}/purpose.presenter.test.js | 12 +- .../{ => setup}/reason.presenter.test.js | 10 +- .../{ => setup}/remove.presenter.test.js | 8 +- .../returns-cycle.presenter.test.js | 10 +- .../site-description.presenter.test.js | 10 +- .../{ => setup}/start-date.presenter.test.js | 8 +- .../view-licence-history.service.test.js | 2 +- .../view-licence-set-up.service.test.js | 2 +- .../abstraction-period.service.test.js | 8 +- .../{ => setup}/add.service.test.js | 6 +- ...itional-submission-options.service.test.js | 8 +- .../agreements-exceptions.service.test.js | 8 +- .../{ => setup}/cancel.service.test.js | 10 +- .../{ => setup/check}/check.service.test.js | 10 +- ...eturn-version-requirements.service.test.js | 14 +- .../generate-return-version.service.test.js | 12 +- .../persist-return-version.service.test.js | 14 +- ...s-existing-return-versions.service.test.js | 10 +- .../check}/submit-check.service.test.js | 10 +- .../{ => setup}/delete-note.service.test.js | 6 +- .../{ => setup}/existing.service.test.js | 6 +- .../fetch-existing-requirements.test.js | 6 +- .../{ => setup}/fetch-points.service.test.js | 16 +- .../fetch-purposes.service.test.js | 10 +- .../frequency-collected.service.test.js | 8 +- .../frequency-reported.service.test.js | 8 +- ...from-existing-requirements.service.test.js | 6 +- .../initiate-session.service.test.js | 18 +- .../fetch-abstraction-data.service.test.js | 6 +- ...rate-from-abstraction-data.service.test.js | 8 +- .../{ => setup}/method/method.service.test.js | 6 +- .../method/submit-method.service.test.js | 8 +- .../no-returns-required.service.test.js | 8 +- .../{ => setup}/note.service.test.js | 8 +- .../{ => setup}/points.service.test.js | 12 +- .../{ => setup}/purpose.service.test.js | 10 +- .../{ => setup}/reason.service.test.js | 8 +- .../{ => setup}/remove.service.test.js | 10 +- .../{ => setup}/returns-cycle.service.test.js | 8 +- .../site-description.service.test.js | 8 +- .../{ => setup}/start-date.service.test.js | 8 +- .../submit-abstraction-period.service.test.js | 8 +- ...itional-submission-options.service.test.js | 8 +- ...bmit-agreements-exceptions.service.test.js | 8 +- .../{ => setup}/submit-cancel.service.test.js | 8 +- .../submit-existing.service.test.js | 8 +- ...submit-frequency-collected.service.test.js | 8 +- .../submit-frequency-reported.service.test.js | 8 +- ...submit-no-returns-required.service.test.js | 8 +- .../{ => setup}/submit-note.service.test.js | 8 +- .../{ => setup}/submit-points.service.test.js | 12 +- .../submit-purpose.service.test.js | 12 +- .../{ => setup}/submit-reason.service.test.js | 8 +- .../{ => setup}/submit-remove.service.test.js | 8 +- .../submit-returns-cycle.service.test.js | 8 +- .../submit-site-description.service.test.js | 8 +- .../submit-start-date.service.test.js | 8 +- .../abstraction-period.validator.test.js | 4 +- ...ional-submission-options.validator.test.js | 4 +- .../agreements-exceptions.validator.test.js | 4 +- .../{ => setup}/existing.validator.test.js | 4 +- .../frequency-collected.validator.test.js | 4 +- .../frequency-reported.validator.test.js | 4 +- .../{ => setup}/method.validator.test.js | 4 +- .../no-returns-required.validator.test.js | 4 +- .../{ => setup}/note.validator.test.js | 4 +- .../{ => setup}/points.validator.test.js | 4 +- .../{ => setup}/purpose.validator.test.js | 4 +- .../{ => setup}/reason.validator.test.js | 4 +- .../returns-cycle.validator.test.js | 4 +- .../site-description.validator.test.js | 4 +- .../{ => setup}/start-date.validator.test.js | 4 +- 203 files changed, 2766 insertions(+), 2706 deletions(-) create mode 100644 app/controllers/return-requirements-setup.controller.js rename app/presenters/return-requirements/{ => setup}/abstraction-period.presenter.js (72%) rename app/presenters/return-requirements/{ => setup}/additional-submission-options.presenter.js (66%) rename app/presenters/return-requirements/{ => setup}/agreements-exceptions.presenter.js (72%) rename app/presenters/return-requirements/{ => setup}/cancel.presenter.js (81%) rename app/presenters/return-requirements/{ => setup/check}/check.presenter.js (70%) rename app/presenters/return-requirements/{ => setup}/check/returns-requirements.presenter.js (92%) rename app/presenters/return-requirements/{ => setup}/existing.presenter.js (84%) rename app/presenters/return-requirements/{ => setup}/frequency-collected.presenter.js (72%) rename app/presenters/return-requirements/{ => setup}/frequency-reported.presenter.js (72%) rename app/presenters/return-requirements/{ => setup}/method.presenter.js (67%) rename app/presenters/return-requirements/{ => setup}/no-returns-required.presenter.js (65%) rename app/presenters/return-requirements/{ => setup}/note.presenter.js (65%) rename app/presenters/return-requirements/{ => setup}/points.presenter.js (84%) rename app/presenters/return-requirements/{ => setup}/purpose.presenter.js (88%) rename app/presenters/return-requirements/{ => setup}/reason.presenter.js (66%) rename app/presenters/return-requirements/{ => setup}/remove.presenter.js (79%) rename app/presenters/return-requirements/{ => setup}/returns-cycle.presenter.js (72%) rename app/presenters/return-requirements/{ => setup}/site-description.presenter.js (72%) rename app/presenters/return-requirements/{ => setup}/start-date.presenter.js (79%) delete mode 100644 app/routes/return-requirement.routes.js create mode 100644 app/routes/return-requirements-setup.routes.js create mode 100644 app/routes/return-requirements.routes.js rename app/services/return-requirements/{ => setup}/abstraction-period.service.js (77%) rename app/services/return-requirements/{ => setup}/add.service.js (93%) rename app/services/return-requirements/{ => setup}/additional-submission-options.service.js (70%) rename app/services/return-requirements/{ => setup}/agreements-exceptions.service.js (77%) rename app/services/return-requirements/{ => setup}/cancel.service.js (77%) rename app/services/return-requirements/{ => setup/check}/check.service.js (72%) rename app/services/return-requirements/{ => setup/check}/generate-return-version-requirements.service.js (93%) rename app/services/return-requirements/{ => setup/check}/generate-return-version.service.js (97%) rename app/services/return-requirements/{ => setup/check}/persist-return-version.service.js (88%) rename app/services/return-requirements/{ => setup/check}/process-existing-return-versions.service.js (99%) rename app/services/return-requirements/{ => setup/check}/submit-check.service.js (94%) rename app/services/return-requirements/{ => setup}/delete-note.service.js (73%) rename app/services/return-requirements/{ => setup}/existing.service.js (76%) rename app/services/return-requirements/{ => setup}/fetch-existing-requirements.js (96%) rename app/services/return-requirements/{ => setup}/fetch-points.service.js (96%) rename app/services/return-requirements/{ => setup}/fetch-purposes.service.js (87%) rename app/services/return-requirements/{ => setup}/frequency-collected.service.js (77%) rename app/services/return-requirements/{ => setup}/frequency-reported.service.js (77%) rename app/services/return-requirements/{ => setup}/generate-from-existing-requirements.service.js (100%) rename app/services/return-requirements/{ => setup}/initiate-session.service.js (94%) rename app/services/return-requirements/{ => setup}/method/fetch-abstraction-data.service.js (97%) rename app/services/return-requirements/{ => setup}/method/generate-from-abstraction-data.service.js (100%) rename app/services/return-requirements/{ => setup}/method/method.service.js (77%) rename app/services/return-requirements/{ => setup}/method/submit-method.service.js (83%) rename app/services/return-requirements/{ => setup}/no-returns-required.service.js (75%) rename app/services/return-requirements/{ => setup}/note.service.js (77%) rename app/services/return-requirements/{ => setup}/points.service.js (76%) rename app/services/return-requirements/{ => setup}/purpose.service.js (81%) rename app/services/return-requirements/{ => setup}/reason.service.js (70%) rename app/services/return-requirements/{ => setup}/remove.service.js (67%) rename app/services/return-requirements/{ => setup}/returns-cycle.service.js (78%) rename app/services/return-requirements/{ => setup}/site-description.service.js (77%) rename app/services/return-requirements/{ => setup}/start-date.service.js (76%) rename app/services/return-requirements/{ => setup}/submit-abstraction-period.service.js (82%) rename app/services/return-requirements/{ => setup}/submit-additional-submission-options.service.js (83%) rename app/services/return-requirements/{ => setup}/submit-agreements-exceptions.service.js (82%) rename app/services/return-requirements/{ => setup}/submit-cancel.service.js (91%) rename app/services/return-requirements/{ => setup}/submit-existing.service.js (79%) rename app/services/return-requirements/{ => setup}/submit-frequency-collected.service.js (78%) rename app/services/return-requirements/{ => setup}/submit-frequency-reported.service.js (78%) rename app/services/return-requirements/{ => setup}/submit-no-returns-required.service.js (74%) rename app/services/return-requirements/{ => setup}/submit-note.service.js (84%) rename app/services/return-requirements/{ => setup}/submit-points.service.js (81%) rename app/services/return-requirements/{ => setup}/submit-purpose.service.js (87%) rename app/services/return-requirements/{ => setup}/submit-reason.service.js (78%) rename app/services/return-requirements/{ => setup}/submit-remove.service.js (95%) rename app/services/return-requirements/{ => setup}/submit-returns-cycle.service.js (79%) rename app/services/return-requirements/{ => setup}/submit-site-description.service.js (81%) rename app/services/return-requirements/{ => setup}/submit-start-date.service.js (85%) rename app/validators/return-requirements/{ => setup}/abstraction-period.validator.js (97%) rename app/validators/return-requirements/{ => setup}/additional-submission-options.validator.js (100%) rename app/validators/return-requirements/{ => setup}/agreements-exceptions.validator.js (100%) rename app/validators/return-requirements/{ => setup}/existing.validator.js (100%) rename app/validators/return-requirements/{ => setup}/frequency-collected.validator.js (100%) rename app/validators/return-requirements/{ => setup}/frequency-reported.validator.js (100%) rename app/validators/return-requirements/{ => setup}/method.validator.js (100%) rename app/validators/return-requirements/{ => setup}/no-returns-required.validator.js (100%) rename app/validators/return-requirements/{ => setup}/note.validator.js (100%) rename app/validators/return-requirements/{ => setup}/points.validator.js (100%) rename app/validators/return-requirements/{ => setup}/purpose.validator.js (100%) rename app/validators/return-requirements/{ => setup}/reason.validator.js (92%) rename app/validators/return-requirements/{ => setup}/returns-cycle.validator.js (100%) rename app/validators/return-requirements/{ => setup}/site-description.validator.js (100%) rename app/validators/return-requirements/{ => setup}/start-date.validator.js (97%) rename app/views/return-requirements/{ => setup}/abstraction-period.njk (100%) rename app/views/return-requirements/{ => setup}/additional-submission-options.njk (100%) rename app/views/return-requirements/{ => setup}/agreements-exceptions.njk (100%) rename app/views/return-requirements/{ => setup}/approved.njk (100%) rename app/views/return-requirements/{ => setup}/cancel.njk (100%) rename app/views/return-requirements/{ => setup}/check.njk (96%) rename app/views/return-requirements/{ => setup}/existing.njk (100%) rename app/views/return-requirements/{ => setup}/frequency-collected.njk (100%) rename app/views/return-requirements/{ => setup}/frequency-reported.njk (100%) rename app/views/return-requirements/{ => setup}/method.njk (100%) rename app/views/return-requirements/{ => setup}/no-returns-required.njk (100%) rename app/views/return-requirements/{ => setup}/note.njk (100%) rename app/views/return-requirements/{ => setup}/points.njk (100%) rename app/views/return-requirements/{ => setup}/purpose.njk (100%) rename app/views/return-requirements/{ => setup}/reason.njk (100%) rename app/views/return-requirements/{ => setup}/remove.njk (100%) rename app/views/return-requirements/{ => setup}/returns-cycle.njk (100%) rename app/views/return-requirements/{ => setup}/site-description.njk (100%) rename app/views/return-requirements/{ => setup}/start-date.njk (100%) create mode 100644 test/controllers/return-requirements-setup.controller.test.js rename test/presenters/return-requirements/{ => setup}/abstraction-period.presenter.test.js (87%) rename test/presenters/return-requirements/{ => setup}/additional-submission-options.presenter.test.js (86%) rename test/presenters/return-requirements/{ => setup}/agreements-exceptions.presenter.test.js (85%) rename test/presenters/return-requirements/{ => setup}/cancel.presenter.test.js (93%) rename test/presenters/return-requirements/{ => setup/check}/check.presenter.test.js (92%) rename test/presenters/return-requirements/{ => setup}/check/returns-requirements.presenter.test.js (96%) rename test/presenters/return-requirements/{ => setup}/existing.presenter.test.js (95%) rename test/presenters/return-requirements/{ => setup}/frequency-collected.presenter.test.js (85%) rename test/presenters/return-requirements/{ => setup}/frequency-reported.presenter.test.js (85%) rename test/presenters/return-requirements/{ => setup}/method.presenter.test.js (89%) rename test/presenters/return-requirements/{ => setup}/no-returns-required.presenter.test.js (84%) rename test/presenters/return-requirements/{ => setup}/note.presenter.test.js (86%) rename test/presenters/return-requirements/{ => setup}/points.presenter.test.js (92%) rename test/presenters/return-requirements/{ => setup}/purpose.presenter.test.js (93%) rename test/presenters/return-requirements/{ => setup}/reason.presenter.test.js (85%) rename test/presenters/return-requirements/{ => setup}/remove.presenter.test.js (91%) rename test/presenters/return-requirements/{ => setup}/returns-cycle.presenter.test.js (85%) rename test/presenters/return-requirements/{ => setup}/site-description.presenter.test.js (86%) rename test/presenters/return-requirements/{ => setup}/start-date.presenter.test.js (92%) rename test/services/return-requirements/{ => setup}/abstraction-period.service.test.js (81%) rename test/services/return-requirements/{ => setup}/add.service.test.js (85%) rename test/services/return-requirements/{ => setup}/additional-submission-options.service.test.js (79%) rename test/services/return-requirements/{ => setup}/agreements-exceptions.service.test.js (80%) rename test/services/return-requirements/{ => setup}/cancel.service.test.js (85%) rename test/services/return-requirements/{ => setup/check}/check.service.test.js (83%) rename test/services/return-requirements/{ => setup/check}/generate-return-version-requirements.service.test.js (93%) rename test/services/return-requirements/{ => setup/check}/generate-return-version.service.test.js (91%) rename test/services/return-requirements/{ => setup/check}/persist-return-version.service.test.js (88%) rename test/services/return-requirements/{ => setup/check}/process-existing-return-versions.service.test.js (88%) rename test/services/return-requirements/{ => setup/check}/submit-check.service.test.js (75%) rename test/services/return-requirements/{ => setup}/delete-note.service.test.js (86%) rename test/services/return-requirements/{ => setup}/existing.service.test.js (86%) rename test/services/return-requirements/{ => setup}/fetch-existing-requirements.test.js (91%) rename test/services/return-requirements/{ => setup}/fetch-points.service.test.js (73%) rename test/services/return-requirements/{ => setup}/fetch-purposes.service.test.js (84%) rename test/services/return-requirements/{ => setup}/frequency-collected.service.test.js (82%) rename test/services/return-requirements/{ => setup}/frequency-reported.service.test.js (82%) rename test/services/return-requirements/{ => setup}/generate-from-existing-requirements.service.test.js (96%) rename test/services/return-requirements/{ => setup}/initiate-session.service.test.js (87%) rename test/services/return-requirements/{ => setup}/method/fetch-abstraction-data.service.test.js (93%) rename test/services/return-requirements/{ => setup}/method/generate-from-abstraction-data.service.test.js (95%) rename test/services/return-requirements/{ => setup}/method/method.service.test.js (86%) rename test/services/return-requirements/{ => setup}/method/submit-method.service.test.js (92%) rename test/services/return-requirements/{ => setup}/no-returns-required.service.test.js (81%) rename test/services/return-requirements/{ => setup}/note.service.test.js (83%) rename test/services/return-requirements/{ => setup}/points.service.test.js (82%) rename test/services/return-requirements/{ => setup}/purpose.service.test.js (84%) rename test/services/return-requirements/{ => setup}/reason.service.test.js (82%) rename test/services/return-requirements/{ => setup}/remove.service.test.js (86%) rename test/services/return-requirements/{ => setup}/returns-cycle.service.test.js (83%) rename test/services/return-requirements/{ => setup}/site-description.service.test.js (83%) rename test/services/return-requirements/{ => setup}/start-date.service.test.js (85%) rename test/services/return-requirements/{ => setup}/submit-abstraction-period.service.test.js (95%) rename test/services/return-requirements/{ => setup}/submit-additional-submission-options.service.test.js (90%) rename test/services/return-requirements/{ => setup}/submit-agreements-exceptions.service.test.js (92%) rename test/services/return-requirements/{ => setup}/submit-cancel.service.test.js (86%) rename test/services/return-requirements/{ => setup}/submit-existing.service.test.js (90%) rename test/services/return-requirements/{ => setup}/submit-frequency-collected.service.test.js (91%) rename test/services/return-requirements/{ => setup}/submit-frequency-reported.service.test.js (91%) rename test/services/return-requirements/{ => setup}/submit-no-returns-required.service.test.js (90%) rename test/services/return-requirements/{ => setup}/submit-note.service.test.js (95%) rename test/services/return-requirements/{ => setup}/submit-points.service.test.js (89%) rename test/services/return-requirements/{ => setup}/submit-purpose.service.test.js (91%) rename test/services/return-requirements/{ => setup}/submit-reason.service.test.js (91%) rename test/services/return-requirements/{ => setup}/submit-remove.service.test.js (88%) rename test/services/return-requirements/{ => setup}/submit-returns-cycle.service.test.js (91%) rename test/services/return-requirements/{ => setup}/submit-site-description.service.test.js (93%) rename test/services/return-requirements/{ => setup}/submit-start-date.service.test.js (94%) rename test/validators/return-requirements/{ => setup}/abstraction-period.validator.test.js (94%) rename test/validators/return-requirements/{ => setup}/additional-submission-options.validator.test.js (85%) rename test/validators/return-requirements/{ => setup}/agreements-exceptions.validator.test.js (88%) rename test/validators/return-requirements/{ => setup}/existing.validator.test.js (89%) rename test/validators/return-requirements/{ => setup}/frequency-collected.validator.test.js (86%) rename test/validators/return-requirements/{ => setup}/frequency-reported.validator.test.js (86%) rename test/validators/return-requirements/{ => setup}/method.validator.test.js (88%) rename test/validators/return-requirements/{ => setup}/no-returns-required.validator.test.js (86%) rename test/validators/return-requirements/{ => setup}/note.validator.test.js (91%) rename test/validators/return-requirements/{ => setup}/points.validator.test.js (88%) rename test/validators/return-requirements/{ => setup}/purpose.validator.test.js (96%) rename test/validators/return-requirements/{ => setup}/reason.validator.test.js (87%) rename test/validators/return-requirements/{ => setup}/returns-cycle.validator.test.js (86%) rename test/validators/return-requirements/{ => setup}/site-description.validator.test.js (92%) rename test/validators/return-requirements/{ => setup}/start-date.validator.test.js (97%) diff --git a/app/controllers/licences.controller.js b/app/controllers/licences.controller.js index 4f4d5f807e..639deb98de 100644 --- a/app/controllers/licences.controller.js +++ b/app/controllers/licences.controller.js @@ -5,7 +5,7 @@ * @module LicencesController */ -const InitiateSessionService = require('../services/return-requirements/initiate-session.service.js') +const InitiateSessionService = require('../services/return-requirements/setup/initiate-session.service.js') const LicenceSupplementaryProcessBillingFlagService = require('../services/licences/supplementary/process-billing-flag.service.js') const MarkedForSupplementaryBillingService = require('../services/licences/supplementary/marked-for-supplementary-billing.service.js') const MarkForSupplementaryBillingService = require('../services/licences/supplementary/mark-for-supplementary-billing.service.js') @@ -50,7 +50,7 @@ async function noReturnsRequired (request, h) { const session = await InitiateSessionService.go(id, 'no-returns-required') - return h.redirect(`/system/return-requirements/${session.id}/start-date`) + return h.redirect(`/system/return-requirements/setup/${session.id}/start-date`) } async function returnsRequired (request, h) { @@ -58,7 +58,7 @@ async function returnsRequired (request, h) { const session = await InitiateSessionService.go(id, 'returns-required') - return h.redirect(`/system/return-requirements/${session.id}/start-date`) + return h.redirect(`/system/return-requirements/setup/${session.id}/start-date`) } async function submitMarkForSupplementaryBilling (request, h) { diff --git a/app/controllers/return-requirements-setup.controller.js b/app/controllers/return-requirements-setup.controller.js new file mode 100644 index 0000000000..c44e9a94b3 --- /dev/null +++ b/app/controllers/return-requirements-setup.controller.js @@ -0,0 +1,543 @@ +'use strict' + +/** + * Controller for /return-requirement/setup endpoints + * @module ReturnRequirementsSetupController + */ + +const AbstractionPeriodService = require('../services/return-requirements/setup/abstraction-period.service.js') +const AddService = require('../services/return-requirements/setup/add.service.js') +const AdditionalSubmissionOptionsService = require('../services/return-requirements/setup/additional-submission-options.service.js') +const AgreementsExceptionsService = require('../services/return-requirements/setup/agreements-exceptions.service.js') +const CancelService = require('../services/return-requirements/setup/cancel.service.js') +const CheckService = require('../services/return-requirements/setup/check/check.service.js') +const DeleteNoteService = require('../services/return-requirements/setup/delete-note.service.js') +const ExistingService = require('../services/return-requirements/setup/existing.service.js') +const FeatureFlagsConfig = require('../../config/feature-flags.config.js') +const FrequencyCollectedService = require('../services/return-requirements/setup/frequency-collected.service.js') +const FrequencyReportedService = require('../services/return-requirements/setup/frequency-reported.service.js') +const MethodService = require('../services/return-requirements/setup/method/method.service.js') +const NoReturnsRequiredService = require('../services/return-requirements/setup/no-returns-required.service.js') +const NoteService = require('../services/return-requirements/setup/note.service.js') +const PointsService = require('../services/return-requirements/setup/points.service.js') +const RemoveService = require('../services/return-requirements/setup/remove.service.js') +const ReturnsCycleService = require('../services/return-requirements/setup/returns-cycle.service.js') +const SelectPurposeService = require('../services/return-requirements/setup/purpose.service.js') +const SelectReasonService = require('../services/return-requirements/setup/reason.service.js') +const SiteDescriptionService = require('../services/return-requirements/setup/site-description.service.js') +const StartDateService = require('../services/return-requirements/setup/start-date.service.js') +const SubmitAbstractionPeriod = require('../services/return-requirements/setup/submit-abstraction-period.service.js') +const SubmitAdditionalSubmissionOptionsService = require('../services/return-requirements/setup/submit-additional-submission-options.service.js') +const SubmitAgreementsExceptions = require('../services/return-requirements/setup/submit-agreements-exceptions.service.js') +const SubmitCancel = require('../services/return-requirements/setup/submit-cancel.service.js') +const SubmitCheckService = require('../services/return-requirements/setup/check/submit-check.service.js') +const SubmitExistingService = require('../services/return-requirements/setup/submit-existing.service.js') +const SubmitFrequencyCollectedService = require('../services/return-requirements/setup/submit-frequency-collected.service.js') +const SubmitFrequencyReportedService = require('../services/return-requirements/setup/submit-frequency-reported.service.js') +const SubmitMethodService = require('../services/return-requirements/setup/method/submit-method.service.js') +const SubmitNoReturnsRequiredService = require('../services/return-requirements/setup/submit-no-returns-required.service.js') +const SubmitNoteService = require('../services/return-requirements/setup/submit-note.service.js') +const SubmitPointsService = require('../services/return-requirements/setup/submit-points.service.js') +const SubmitPurposeService = require('../services/return-requirements/setup/submit-purpose.service.js') +const SubmitReasonService = require('../services/return-requirements/setup/submit-reason.service.js') +const SubmitRemoveService = require('../services/return-requirements/setup/submit-remove.service.js') +const SubmitReturnsCycleService = require('../services/return-requirements/setup/submit-returns-cycle.service.js') +const SubmitSiteDescriptionService = require('../services/return-requirements/setup/submit-site-description.service.js') +const SubmitStartDateService = require('../services/return-requirements/setup/submit-start-date.service.js') + +async function abstractionPeriod (request, h) { + const { requirementIndex, sessionId } = request.params + + const pageData = await AbstractionPeriodService.go(sessionId, requirementIndex) + + return h.view('return-requirements/setup/abstraction-period.njk', { + ...pageData + }) +} + +async function add (request, h) { + const { sessionId } = request.params + + const requirementIndex = await AddService.go(sessionId) + + return h.redirect(`/system/return-requirements/setup/${sessionId}/purpose/${requirementIndex}`) +} + +async function additionalSubmissionOptions (request, h) { + const { sessionId } = request.params + + const pageData = await AdditionalSubmissionOptionsService.go(sessionId) + + return h.view('return-requirements/setup/additional-submission-options.njk', { + ...pageData + }) +} + +async function agreementsExceptions (request, h) { + const { requirementIndex, sessionId } = request.params + + const pageData = await AgreementsExceptionsService.go(sessionId, requirementIndex) + + return h.view('return-requirements/setup/agreements-exceptions.njk', { + ...pageData + }) +} + +async function approved (request, h) { + const { licenceId } = request.params + + return h.view('return-requirements/setup/approved.njk', { + activeNavBar: 'search', + pageTitle: 'Requirements for returns approved', + licenceId + }) +} + +async function cancel (request, h) { + const { sessionId } = request.params + const pageData = await CancelService.go(sessionId) + + return h.view('return-requirements/setup/cancel.njk', { + ...pageData + }) +} + +async function check (request, h) { + const { sessionId } = request.params + const pageData = await CheckService.go(sessionId, request.yar) + + return h.view('return-requirements/setup/check.njk', { + ...pageData + }) +} + +async function deleteNote (request, h) { + const { sessionId } = request.params + + await DeleteNoteService.go(sessionId, request.yar) + + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) +} + +async function existing (request, h) { + const { sessionId } = request.params + + const pageData = await ExistingService.go(sessionId) + + return h.view('return-requirements/setup/existing.njk', { + ...pageData + }) +} + +async function frequencyCollected (request, h) { + const { requirementIndex, sessionId } = request.params + + const pageData = await FrequencyCollectedService.go(sessionId, requirementIndex) + + return h.view('return-requirements/setup/frequency-collected.njk', { + ...pageData + }) +} + +async function frequencyReported (request, h) { + const { requirementIndex, sessionId } = request.params + + const pageData = await FrequencyReportedService.go(sessionId, requirementIndex) + + return h.view('return-requirements/setup/frequency-reported.njk', { + ...pageData + }) +} + +async function method (request, h) { + const { sessionId } = request.params + + const pageData = await MethodService.go(sessionId) + + return h.view('return-requirements/setup/method.njk', { + ...pageData + }) +} + +async function noReturnsRequired (request, h) { + const { sessionId } = request.params + + const pageData = await NoReturnsRequiredService.go(sessionId) + + return h.view('return-requirements/setup/no-returns-required.njk', { + ...pageData + }) +} + +async function note (request, h) { + const { sessionId } = request.params + + const pageData = await NoteService.go(sessionId) + + return h.view('return-requirements/setup/note.njk', { + ...pageData + }) +} + +async function points (request, h) { + const { requirementIndex, sessionId } = request.params + + const pageData = await PointsService.go(sessionId, requirementIndex) + + return h.view('return-requirements/setup/points.njk', { + ...pageData + }) +} + +async function purpose (request, h) { + const { requirementIndex, sessionId } = request.params + + const pageData = await SelectPurposeService.go(sessionId, requirementIndex) + + return h.view('return-requirements/setup/purpose.njk', { + ...pageData + }) +} + +async function reason (request, h) { + const { sessionId } = request.params + + const pageData = await SelectReasonService.go(sessionId) + + return h.view('return-requirements/setup/reason.njk', { + ...pageData + }) +} + +async function remove (request, h) { + const { requirementIndex, sessionId } = request.params + + const pageData = await RemoveService.go(sessionId, requirementIndex) + + return h.view('return-requirements/setup/remove.njk', { + ...pageData + }) +} + +async function returnsCycle (request, h) { + const { requirementIndex, sessionId } = request.params + + const pageData = await ReturnsCycleService.go(sessionId, requirementIndex) + + return h.view('return-requirements/setup/returns-cycle.njk', { + ...pageData + }) +} + +async function siteDescription (request, h) { + const { requirementIndex, sessionId } = request.params + + const pageData = await SiteDescriptionService.go(sessionId, requirementIndex) + + return h.view('return-requirements/setup/site-description.njk', { + ...pageData + }) +} + +async function startDate (request, h) { + const { sessionId } = request.params + + const pageData = await StartDateService.go(sessionId) + + return h.view('return-requirements/setup/start-date.njk', { + ...pageData + }) +} + +async function submitAbstractionPeriod (request, h) { + const { params: { requirementIndex, sessionId }, payload, yar } = request + + const pageData = await SubmitAbstractionPeriod.go(sessionId, requirementIndex, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/abstraction-period.njk', pageData) + } + + if (pageData.checkPageVisited) { + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/returns-cycle/${requirementIndex}`) +} + +async function submitAgreementsExceptions (request, h) { + const { params: { requirementIndex, sessionId }, payload, yar } = request + + const pageData = await SubmitAgreementsExceptions.go(sessionId, requirementIndex, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/agreements-exceptions.njk', pageData) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) +} + +async function submitAdditionalSubmissionOptions (request, h) { + const { params: { sessionId }, payload, yar } = request + + const pageData = await SubmitAdditionalSubmissionOptionsService.go(sessionId, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/additional-submission-options.njk', pageData) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) +} + +async function submitCancel (request, h) { + const { sessionId } = request.params + const { licenceId } = request.payload + + await SubmitCancel.go(sessionId) + + if (FeatureFlagsConfig.enableSystemLicenceView) { + return h.redirect(`/system/licences/${licenceId}/set-up`) + } else { + return h.redirect(`/licences/${licenceId}#charge`) + } +} + +async function submitCheck (request, h) { + const { sessionId } = request.params + const { id: userId } = request.auth.credentials.user + + const licenceId = await SubmitCheckService.go(sessionId, userId) + + return h.redirect(`/system/return-requirements/setup/${licenceId}/approved`) +} + +async function submitExisting (request, h) { + const { params: { sessionId }, payload } = request + + const pageData = await SubmitExistingService.go(sessionId, payload) + + if (pageData.error) { + return h.view('return-requirements/setup/existing.njk', pageData) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) +} + +async function submitFrequencyCollected (request, h) { + const { params: { requirementIndex, sessionId }, payload, yar } = request + + const pageData = await SubmitFrequencyCollectedService.go(sessionId, requirementIndex, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/frequency-collected.njk', pageData) + } + + if (pageData.checkPageVisited) { + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/frequency-reported/${requirementIndex}`) +} + +async function submitFrequencyReported (request, h) { + const { params: { requirementIndex, sessionId }, payload, yar } = request + + const pageData = await SubmitFrequencyReportedService.go(sessionId, requirementIndex, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/frequency-reported.njk', pageData) + } + + if (pageData.checkPageVisited) { + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/agreements-exceptions/${requirementIndex}`) +} + +async function submitMethod (request, h) { + const { sessionId } = request.params + + const pageData = await SubmitMethodService.go(sessionId, request.payload) + + if (pageData.error) { + return h.view('return-requirements/setup/method.njk', pageData) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/${pageData.redirect}`) +} + +async function submitNoReturnsRequired (request, h) { + const { params: { sessionId }, payload, yar } = request + + const pageData = await SubmitNoReturnsRequiredService.go(sessionId, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/no-returns-required.njk', pageData) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) +} + +async function submitNote (request, h) { + const { sessionId } = request.params + const { user } = request.auth.credentials + + const pageData = await SubmitNoteService.go(sessionId, request.payload, user, request.yar) + + if (pageData.error) { + return h.view('return-requirements/setup/note.njk', pageData) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) +} + +async function submitPoints (request, h) { + const { params: { requirementIndex, sessionId }, payload, yar } = request + + const pageData = await SubmitPointsService.go(sessionId, requirementIndex, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/points.njk', pageData) + } + + if (pageData.checkPageVisited) { + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/abstraction-period/${requirementIndex}`) +} + +async function submitPurpose (request, h) { + const { params: { requirementIndex, sessionId }, payload, yar } = request + + const pageData = await SubmitPurposeService.go(sessionId, requirementIndex, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/purpose.njk', pageData) + } + + if (pageData.checkPageVisited) { + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/points/${requirementIndex}`) +} + +async function submitReason (request, h) { + const { params: { sessionId }, payload, yar } = request + + const pageData = await SubmitReasonService.go(sessionId, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/reason.njk', pageData) + } + + if (pageData.checkPageVisited) { + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/method`) +} + +async function submitRemove (request, h) { + const { requirementIndex, sessionId } = request.params + + await SubmitRemoveService.go(sessionId, requirementIndex, request.yar) + + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) +} + +async function submitReturnsCycle (request, h) { + const { params: { requirementIndex, sessionId }, payload, yar } = request + + const pageData = await SubmitReturnsCycleService.go(sessionId, requirementIndex, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/returns-cycle.njk', pageData) + } + + if (pageData.checkPageVisited) { + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/site-description/${requirementIndex}`) +} + +async function submitSiteDescription (request, h) { + const { params: { requirementIndex, sessionId }, payload, yar } = request + + const pageData = await SubmitSiteDescriptionService.go(sessionId, requirementIndex, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/site-description.njk', pageData) + } + + if (pageData.checkPageVisited) { + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/frequency-collected/${requirementIndex}`) +} + +async function submitStartDate (request, h) { + const { params: { sessionId }, payload, yar } = request + + const pageData = await SubmitStartDateService.go(sessionId, payload, yar) + + if (pageData.error) { + return h.view('return-requirements/setup/start-date.njk', pageData) + } + + if (pageData.checkPageVisited) { + return h.redirect(`/system/return-requirements/setup/${sessionId}/check`) + } + + if (pageData.journey === 'returns-required') { + return h.redirect(`/system/return-requirements/setup/${sessionId}/reason`) + } + + return h.redirect(`/system/return-requirements/setup/${sessionId}/no-returns-required`) +} + +module.exports = { + abstractionPeriod, + add, + additionalSubmissionOptions, + agreementsExceptions, + approved, + cancel, + check, + deleteNote, + existing, + frequencyCollected, + frequencyReported, + method, + noReturnsRequired, + note, + points, + purpose, + reason, + remove, + returnsCycle, + siteDescription, + startDate, + submitAbstractionPeriod, + submitAdditionalSubmissionOptions, + submitAgreementsExceptions, + submitCancel, + submitCheck, + submitExisting, + submitFrequencyCollected, + submitFrequencyReported, + submitMethod, + submitNoReturnsRequired, + submitNote, + submitPoints, + submitPurpose, + submitReason, + submitRemove, + submitReturnsCycle, + submitSiteDescription, + submitStartDate +} diff --git a/app/controllers/return-requirements.controller.js b/app/controllers/return-requirements.controller.js index f61f3324d3..af5694ef3c 100644 --- a/app/controllers/return-requirements.controller.js +++ b/app/controllers/return-requirements.controller.js @@ -5,505 +5,11 @@ * @module ReturnRequirementsController */ -const AbstractionPeriodService = require('../services/return-requirements/abstraction-period.service.js') -const AddService = require('../services/return-requirements/add.service.js') -const AdditionalSubmissionOptionsService = require('../services/return-requirements/additional-submission-options.service.js') -const AgreementsExceptionsService = require('../services/return-requirements/agreements-exceptions.service.js') -const CancelService = require('../services/return-requirements/cancel.service.js') -const CheckService = require('../services/return-requirements/check.service.js') -const DeleteNoteService = require('../services/return-requirements/delete-note.service.js') -const ExistingService = require('../services/return-requirements/existing.service.js') -const FeatureFlagsConfig = require('../../config/feature-flags.config.js') -const FrequencyCollectedService = require('../services/return-requirements/frequency-collected.service.js') -const FrequencyReportedService = require('../services/return-requirements/frequency-reported.service.js') -const MethodService = require('../services/return-requirements/method/method.service.js') -const NoReturnsRequiredService = require('../services/return-requirements/no-returns-required.service.js') -const NoteService = require('../services/return-requirements/note.service.js') -const PointsService = require('../services/return-requirements/points.service.js') -const RemoveService = require('../services/return-requirements/remove.service.js') -const ReturnsCycleService = require('../services/return-requirements/returns-cycle.service.js') -const SelectPurposeService = require('../services/return-requirements/purpose.service.js') -const SelectReasonService = require('../services/return-requirements/reason.service.js') -const SiteDescriptionService = require('../services/return-requirements/site-description.service.js') -const StartDateService = require('../services/return-requirements/start-date.service.js') -const SubmitAbstractionPeriod = require('../services/return-requirements/submit-abstraction-period.service.js') -const SubmitAdditionalSubmissionOptionsService = require('../services/return-requirements/submit-additional-submission-options.service.js') -const SubmitAgreementsExceptions = require('../services/return-requirements/submit-agreements-exceptions.service.js') -const SubmitCancel = require('../services/return-requirements/submit-cancel.service.js') -const SubmitCheckService = require('../services/return-requirements/submit-check.service.js') -const SubmitExistingService = require('../services/return-requirements/submit-existing.service.js') -const SubmitFrequencyCollectedService = require('../services/return-requirements/submit-frequency-collected.service.js') -const SubmitFrequencyReportedService = require('../services/return-requirements/submit-frequency-reported.service.js') -const SubmitMethodService = require('../services/return-requirements/method/submit-method.service.js') -const SubmitNoReturnsRequiredService = require('../services/return-requirements/submit-no-returns-required.service.js') -const SubmitNoteService = require('../services/return-requirements/submit-note.service.js') -const SubmitPointsService = require('../services/return-requirements/submit-points.service.js') -const SubmitPurposeService = require('../services/return-requirements/submit-purpose.service.js') -const SubmitReasonService = require('../services/return-requirements/submit-reason.service.js') -const SubmitRemoveService = require('../services/return-requirements/submit-remove.service.js') -const SubmitReturnsCycleService = require('../services/return-requirements/submit-returns-cycle.service.js') -const SubmitSiteDescriptionService = require('../services/return-requirements/submit-site-description.service.js') -const SubmitStartDateService = require('../services/return-requirements/submit-start-date.service.js') const ViewService = require('../services/return-requirements/view.service.js') -async function abstractionPeriod (request, h) { - const { requirementIndex, sessionId } = request.params - - const pageData = await AbstractionPeriodService.go(sessionId, requirementIndex) - - return h.view('return-requirements/abstraction-period.njk', { - ...pageData - }) -} - -async function add (request, h) { - const { sessionId } = request.params - - const requirementIndex = await AddService.go(sessionId) - - return h.redirect(`/system/return-requirements/${sessionId}/purpose/${requirementIndex}`) -} - -async function additionalSubmissionOptions (request, h) { - const { sessionId } = request.params - - const pageData = await AdditionalSubmissionOptionsService.go(sessionId) - - return h.view('return-requirements/additional-submission-options.njk', { - ...pageData - }) -} - -async function agreementsExceptions (request, h) { - const { requirementIndex, sessionId } = request.params - - const pageData = await AgreementsExceptionsService.go(sessionId, requirementIndex) - - return h.view('return-requirements/agreements-exceptions.njk', { - ...pageData - }) -} - -async function approved (request, h) { - const { licenceId } = request.params - - return h.view('return-requirements/approved.njk', { - activeNavBar: 'search', - pageTitle: 'Requirements for returns approved', - licenceId - }) -} - -async function cancel (request, h) { - const { sessionId } = request.params - const pageData = await CancelService.go(sessionId) - - return h.view('return-requirements/cancel.njk', { - ...pageData - }) -} - -async function check (request, h) { - const { sessionId } = request.params - const pageData = await CheckService.go(sessionId, request.yar) - - return h.view('return-requirements/check.njk', { - ...pageData - }) -} - -async function deleteNote (request, h) { - const { sessionId } = request.params - - await DeleteNoteService.go(sessionId, request.yar) - - return h.redirect(`/system/return-requirements/${sessionId}/check`) -} - -async function existing (request, h) { - const { sessionId } = request.params - - const pageData = await ExistingService.go(sessionId) - - return h.view('return-requirements/existing.njk', { - ...pageData - }) -} - -async function frequencyCollected (request, h) { - const { requirementIndex, sessionId } = request.params - - const pageData = await FrequencyCollectedService.go(sessionId, requirementIndex) - - return h.view('return-requirements/frequency-collected.njk', { - ...pageData - }) -} - -async function frequencyReported (request, h) { - const { requirementIndex, sessionId } = request.params - - const pageData = await FrequencyReportedService.go(sessionId, requirementIndex) - - return h.view('return-requirements/frequency-reported.njk', { - ...pageData - }) -} - -async function method (request, h) { - const { sessionId } = request.params - - const pageData = await MethodService.go(sessionId) - - return h.view('return-requirements/method.njk', { - ...pageData - }) -} - -async function noReturnsRequired (request, h) { - const { sessionId } = request.params - - const pageData = await NoReturnsRequiredService.go(sessionId) - - return h.view('return-requirements/no-returns-required.njk', { - ...pageData - }) -} - -async function note (request, h) { - const { sessionId } = request.params - - const pageData = await NoteService.go(sessionId) - - return h.view('return-requirements/note.njk', { - ...pageData - }) -} - -async function points (request, h) { - const { requirementIndex, sessionId } = request.params - - const pageData = await PointsService.go(sessionId, requirementIndex) - - return h.view('return-requirements/points.njk', { - ...pageData - }) -} - -async function purpose (request, h) { - const { requirementIndex, sessionId } = request.params - - const pageData = await SelectPurposeService.go(sessionId, requirementIndex) - - return h.view('return-requirements/purpose.njk', { - ...pageData - }) -} - -async function reason (request, h) { - const { sessionId } = request.params - - const pageData = await SelectReasonService.go(sessionId) - - return h.view('return-requirements/reason.njk', { - ...pageData - }) -} - -async function remove (request, h) { - const { requirementIndex, sessionId } = request.params - - const pageData = await RemoveService.go(sessionId, requirementIndex) - - return h.view('return-requirements/remove.njk', { - ...pageData - }) -} - -async function returnsCycle (request, h) { - const { requirementIndex, sessionId } = request.params - - const pageData = await ReturnsCycleService.go(sessionId, requirementIndex) - - return h.view('return-requirements/returns-cycle.njk', { - ...pageData - }) -} - -async function siteDescription (request, h) { - const { requirementIndex, sessionId } = request.params - - const pageData = await SiteDescriptionService.go(sessionId, requirementIndex) - - return h.view('return-requirements/site-description.njk', { - ...pageData - }) -} - -async function startDate (request, h) { - const { sessionId } = request.params - - const pageData = await StartDateService.go(sessionId) - - return h.view('return-requirements/start-date.njk', { - ...pageData - }) -} - -async function submitAbstractionPeriod (request, h) { - const { params: { requirementIndex, sessionId }, payload, yar } = request - - const pageData = await SubmitAbstractionPeriod.go(sessionId, requirementIndex, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/abstraction-period.njk', pageData) - } - - if (pageData.checkPageVisited) { - return h.redirect(`/system/return-requirements/${sessionId}/check`) - } - - return h.redirect(`/system/return-requirements/${sessionId}/returns-cycle/${requirementIndex}`) -} - -async function submitAgreementsExceptions (request, h) { - const { params: { requirementIndex, sessionId }, payload, yar } = request - - const pageData = await SubmitAgreementsExceptions.go(sessionId, requirementIndex, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/agreements-exceptions.njk', pageData) - } - - return h.redirect(`/system/return-requirements/${sessionId}/check`) -} - -async function submitAdditionalSubmissionOptions (request, h) { - const { params: { sessionId }, payload, yar } = request - - const pageData = await SubmitAdditionalSubmissionOptionsService.go(sessionId, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/additional-submission-options.njk', pageData) - } - - return h.redirect(`/system/return-requirements/${sessionId}/check`) -} - -async function submitCancel (request, h) { - const { sessionId } = request.params - const { licenceId } = request.payload - - await SubmitCancel.go(sessionId) - - if (FeatureFlagsConfig.enableSystemLicenceView) { - return h.redirect(`/system/licences/${licenceId}/set-up`) - } else { - return h.redirect(`/licences/${licenceId}#charge`) - } -} - -async function submitCheck (request, h) { - const { sessionId } = request.params - const { id: userId } = request.auth.credentials.user - - const licenceId = await SubmitCheckService.go(sessionId, userId) - - return h.redirect(`/system/return-requirements/${licenceId}/approved`) -} - -async function submitExisting (request, h) { - const { params: { sessionId }, payload } = request - - const pageData = await SubmitExistingService.go(sessionId, payload) - - if (pageData.error) { - return h.view('return-requirements/existing.njk', pageData) - } - - return h.redirect(`/system/return-requirements/${sessionId}/check`) -} - -async function submitFrequencyCollected (request, h) { - const { params: { requirementIndex, sessionId }, payload, yar } = request - - const pageData = await SubmitFrequencyCollectedService.go(sessionId, requirementIndex, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/frequency-collected.njk', pageData) - } - - if (pageData.checkPageVisited) { - return h.redirect(`/system/return-requirements/${sessionId}/check`) - } - - return h.redirect(`/system/return-requirements/${sessionId}/frequency-reported/${requirementIndex}`) -} - -async function submitFrequencyReported (request, h) { - const { params: { requirementIndex, sessionId }, payload, yar } = request - - const pageData = await SubmitFrequencyReportedService.go(sessionId, requirementIndex, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/frequency-reported.njk', pageData) - } - - if (pageData.checkPageVisited) { - return h.redirect(`/system/return-requirements/${sessionId}/check`) - } - - return h.redirect(`/system/return-requirements/${sessionId}/agreements-exceptions/${requirementIndex}`) -} - -async function submitMethod (request, h) { - const { sessionId } = request.params - - const pageData = await SubmitMethodService.go(sessionId, request.payload) - - if (pageData.error) { - return h.view('return-requirements/method.njk', pageData) - } - - return h.redirect(`/system/return-requirements/${sessionId}/${pageData.redirect}`) -} - -async function submitNoReturnsRequired (request, h) { - const { params: { sessionId }, payload, yar } = request - - const pageData = await SubmitNoReturnsRequiredService.go(sessionId, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/no-returns-required.njk', pageData) - } - - return h.redirect(`/system/return-requirements/${sessionId}/check`) -} - -async function submitNote (request, h) { - const { sessionId } = request.params - const { user } = request.auth.credentials - - const pageData = await SubmitNoteService.go(sessionId, request.payload, user, request.yar) - - if (pageData.error) { - return h.view('return-requirements/note.njk', pageData) - } - - return h.redirect(`/system/return-requirements/${sessionId}/check`) -} - -async function submitPoints (request, h) { - const { params: { requirementIndex, sessionId }, payload, yar } = request - - const pageData = await SubmitPointsService.go(sessionId, requirementIndex, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/points.njk', pageData) - } - - if (pageData.checkPageVisited) { - return h.redirect(`/system/return-requirements/${sessionId}/check`) - } - - return h.redirect(`/system/return-requirements/${sessionId}/abstraction-period/${requirementIndex}`) -} - -async function submitPurpose (request, h) { - const { params: { requirementIndex, sessionId }, payload, yar } = request - - const pageData = await SubmitPurposeService.go(sessionId, requirementIndex, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/purpose.njk', pageData) - } - - if (pageData.checkPageVisited) { - return h.redirect(`/system/return-requirements/${sessionId}/check`) - } - - return h.redirect(`/system/return-requirements/${sessionId}/points/${requirementIndex}`) -} - -async function submitReason (request, h) { - const { params: { sessionId }, payload, yar } = request - - const pageData = await SubmitReasonService.go(sessionId, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/reason.njk', pageData) - } - - if (pageData.checkPageVisited) { - return h.redirect(`/system/return-requirements/${sessionId}/check`) - } - - return h.redirect(`/system/return-requirements/${sessionId}/method`) -} - -async function submitRemove (request, h) { - const { requirementIndex, sessionId } = request.params - - await SubmitRemoveService.go(sessionId, requirementIndex, request.yar) - - return h.redirect(`/system/return-requirements/${sessionId}/check`) -} - -async function submitReturnsCycle (request, h) { - const { params: { requirementIndex, sessionId }, payload, yar } = request - - const pageData = await SubmitReturnsCycleService.go(sessionId, requirementIndex, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/returns-cycle.njk', pageData) - } - - if (pageData.checkPageVisited) { - return h.redirect(`/system/return-requirements/${sessionId}/check`) - } - - return h.redirect(`/system/return-requirements/${sessionId}/site-description/${requirementIndex}`) -} - -async function submitSiteDescription (request, h) { - const { params: { requirementIndex, sessionId }, payload, yar } = request - - const pageData = await SubmitSiteDescriptionService.go(sessionId, requirementIndex, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/site-description.njk', pageData) - } - - if (pageData.checkPageVisited) { - return h.redirect(`/system/return-requirements/${sessionId}/check`) - } - - return h.redirect(`/system/return-requirements/${sessionId}/frequency-collected/${requirementIndex}`) -} - -async function submitStartDate (request, h) { - const { params: { sessionId }, payload, yar } = request - - const pageData = await SubmitStartDateService.go(sessionId, payload, yar) - - if (pageData.error) { - return h.view('return-requirements/start-date.njk', pageData) - } - - if (pageData.checkPageVisited) { - return h.redirect(`/system/return-requirements/${sessionId}/check`) - } - - if (pageData.journey === 'returns-required') { - return h.redirect(`/system/return-requirements/${sessionId}/reason`) - } - - return h.redirect(`/system/return-requirements/${sessionId}/no-returns-required`) -} - async function view (request, h) { - const { returnVersionId } = request.params - const pageData = await ViewService.go(returnVersionId) + const { id } = request.params + const pageData = await ViewService.go(id) return h.view('return-requirements/view.njk', { ...pageData @@ -511,44 +17,5 @@ async function view (request, h) { } module.exports = { - abstractionPeriod, - add, - additionalSubmissionOptions, - agreementsExceptions, - approved, - cancel, - check, - deleteNote, - existing, - frequencyCollected, - frequencyReported, - method, - noReturnsRequired, - note, - points, - purpose, - reason, - remove, - returnsCycle, - siteDescription, - startDate, - submitAbstractionPeriod, - submitAdditionalSubmissionOptions, - submitAgreementsExceptions, - submitCancel, - submitCheck, - submitExisting, - submitFrequencyCollected, - submitFrequencyReported, - submitMethod, - submitNoReturnsRequired, - submitNote, - submitPoints, - submitPurpose, - submitReason, - submitRemove, - submitReturnsCycle, - submitSiteDescription, - submitStartDate, view } diff --git a/app/plugins/router.plugin.js b/app/plugins/router.plugin.js index 6965f5574b..05fef395b3 100644 --- a/app/plugins/router.plugin.js +++ b/app/plugins/router.plugin.js @@ -25,7 +25,8 @@ const ImportRoutes = require('../routes/import.routes.js') const JobRoutes = require('../routes/jobs.routes.js') const LicenceRoutes = require('../routes/licence.routes.js') const MonitoringStationRoutes = require('../routes/monitoring-station.routes.js') -const ReturnRequirementRoutes = require('../routes/return-requirement.routes.js') +const ReturnRequirementsRoutes = require('../routes/return-requirements.routes.js') +const ReturnRequirementsSetupRoutes = require('../routes/return-requirements-setup.routes.js') const RootRoutes = require('../routes/root.routes.js') const AirbrakeConfig = require('../../config/airbrake.config.js') @@ -43,7 +44,8 @@ const routes = [ ...LicenceRoutes, ...JobRoutes, ...MonitoringStationRoutes, - ...ReturnRequirementRoutes, + ...ReturnRequirementsRoutes, + ...ReturnRequirementsSetupRoutes, ...DataRoutes, ...ImportRoutes ] diff --git a/app/presenters/licences/set-up.presenter.js b/app/presenters/licences/set-up.presenter.js index a05a479d66..9f1db3b169 100644 --- a/app/presenters/licences/set-up.presenter.js +++ b/app/presenters/licences/set-up.presenter.js @@ -219,7 +219,7 @@ function _returnVersions (returnVersions = [{}]) { return { action: [{ text: 'View', - link: `/system/return-requirements/${returnVersion.id}/view` + link: `/system/return-requirements/${returnVersion.id}` }], endDate: returnVersion.endDate ? formatLongDate(returnVersion.endDate) : '', reason: _reason(returnVersion), diff --git a/app/presenters/licences/view-licence-history.presenter.js b/app/presenters/licences/view-licence-history.presenter.js index 067ae99de6..0962eb811b 100644 --- a/app/presenters/licences/view-licence-history.presenter.js +++ b/app/presenters/licences/view-licence-history.presenter.js @@ -97,7 +97,7 @@ function _returnVersionEntries (licence) { dateCreated: formatLongDate(createdAt), displayNote: notes.length > 0, notes, - link: `/system/return-requirements/${returnVersion.id}/view`, + link: `/system/return-requirements/${returnVersion.id}`, reason: mappedReason ?? reason, type: { index: 2, name: 'Return version' } } diff --git a/app/presenters/return-requirements/abstraction-period.presenter.js b/app/presenters/return-requirements/setup/abstraction-period.presenter.js similarity index 72% rename from app/presenters/return-requirements/abstraction-period.presenter.js rename to app/presenters/return-requirements/setup/abstraction-period.presenter.js index c6c7202dce..8f38d4996b 100644 --- a/app/presenters/return-requirements/abstraction-period.presenter.js +++ b/app/presenters/return-requirements/setup/abstraction-period.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/abstraction-period` page + * Formats data for the `/return-requirements/setup/{sessionId}/abstraction-period` page * @module AbstractionPeriodPresenter -*/ + */ /** - * Formats data for the `/return-requirements/{sessionId}/abstraction-period` page + * Formats data for the `/return-requirements/setup/{sessionId}/abstraction-period` page * * @param {module:SessionModel} session - The returns requirements session instance * @param {string} requirementIndex - The index of the requirement being added or changed @@ -30,10 +30,10 @@ function _backLink (session, requirementIndex) { const { checkPageVisited, id } = session if (checkPageVisited) { - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } - return `/system/return-requirements/${id}/points/${requirementIndex}` + return `/system/return-requirements/setup/${id}/points/${requirementIndex}` } module.exports = { diff --git a/app/presenters/return-requirements/additional-submission-options.presenter.js b/app/presenters/return-requirements/setup/additional-submission-options.presenter.js similarity index 66% rename from app/presenters/return-requirements/additional-submission-options.presenter.js rename to app/presenters/return-requirements/setup/additional-submission-options.presenter.js index e119ef0290..a4e00ddbc9 100644 --- a/app/presenters/return-requirements/additional-submission-options.presenter.js +++ b/app/presenters/return-requirements/setup/additional-submission-options.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/additional-submission-options` page + * Formats data for the `/return-requirements/setup/{sessionId}/additional-submission-options` page * @module AdditionalSubmissionOptionsPresenter -*/ + */ /** - * Formats data for the `/return-requirements/{sessionId}/additional-submission-options` page + * Formats data for the `/return-requirements/setup/{sessionId}/additional-submission-options` page * * @param {module:SessionModel} session - The returns requirements session instance * @@ -16,7 +16,7 @@ function go (session) { const { id: sessionId, licence: { id: licenceId, licenceRef }, additionalSubmissionOptions } = session const data = { additionalSubmissionOptions: additionalSubmissionOptions ?? [], - backLink: `/system/return-requirements/${sessionId}/check`, + backLink: `/system/return-requirements/setup/${sessionId}/check`, licenceId, licenceRef, sessionId diff --git a/app/presenters/return-requirements/agreements-exceptions.presenter.js b/app/presenters/return-requirements/setup/agreements-exceptions.presenter.js similarity index 72% rename from app/presenters/return-requirements/agreements-exceptions.presenter.js rename to app/presenters/return-requirements/setup/agreements-exceptions.presenter.js index 6f630d6691..26465401f1 100644 --- a/app/presenters/return-requirements/agreements-exceptions.presenter.js +++ b/app/presenters/return-requirements/setup/agreements-exceptions.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/agreements-exceptions` page + * Formats data for the `/return-requirements/setup/{sessionId}/agreements-exceptions` page * @module AgreementsExceptionsPresenter -*/ + */ /** - * Formats data for the `/return-requirements/{sessionId}/agreements-exceptions` page + * Formats data for the `/return-requirements/setup/{sessionId}/agreements-exceptions` page * * @param {module:SessionModel} session - The returns requirements session instance * @param {string} requirementIndex - The index of the requirement being added or changed @@ -30,10 +30,10 @@ function _backLink (session, requirementIndex) { const { checkPageVisited, id } = session if (checkPageVisited) { - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } - return `/system/return-requirements/${id}/frequency-reported/${requirementIndex}` + return `/system/return-requirements/setup/${id}/frequency-reported/${requirementIndex}` } module.exports = { diff --git a/app/presenters/return-requirements/cancel.presenter.js b/app/presenters/return-requirements/setup/cancel.presenter.js similarity index 81% rename from app/presenters/return-requirements/cancel.presenter.js rename to app/presenters/return-requirements/setup/cancel.presenter.js index ce65462ce8..8018fd7841 100644 --- a/app/presenters/return-requirements/cancel.presenter.js +++ b/app/presenters/return-requirements/setup/cancel.presenter.js @@ -1,15 +1,15 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/cancel` page + * Formats data for the `/return-requirements/setup/{sessionId}/cancel` page * @module CancelRequirementsPresenter -*/ + */ -const { formatLongDate } = require('../base.presenter.js') -const { returnRequirementFrequencies, returnRequirementReasons } = require('../../lib/static-lookups.lib.js') +const { formatLongDate } = require('../../base.presenter.js') +const { returnRequirementFrequencies, returnRequirementReasons } = require('../../../lib/static-lookups.lib.js') /** - * Formats data for the `/return-requirements/{sessionId}/cancel` page + * Formats data for the `/return-requirements/setup/{sessionId}/cancel` page * * @param {module:SessionModel} session - The returns requirements session instance * @@ -19,7 +19,7 @@ function go (session) { const { id: sessionId, journey, licence, reason, requirements } = session return { - backLink: `/system/return-requirements/${sessionId}/check`, + backLink: `/system/return-requirements/setup/${sessionId}/check`, licenceId: licence.id, licenceRef: licence.licenceRef, reason: returnRequirementReasons[reason], diff --git a/app/presenters/return-requirements/check.presenter.js b/app/presenters/return-requirements/setup/check/check.presenter.js similarity index 70% rename from app/presenters/return-requirements/check.presenter.js rename to app/presenters/return-requirements/setup/check/check.presenter.js index d1479f3191..1046e54d7d 100644 --- a/app/presenters/return-requirements/check.presenter.js +++ b/app/presenters/return-requirements/setup/check/check.presenter.js @@ -1,13 +1,20 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/check` page + * Formats data for the `/return-requirements/setup/{sessionId}/check` page * @module CheckPresenter */ -const { formatLongDate } = require('../base.presenter.js') -const { returnRequirementReasons } = require('../../lib/static-lookups.lib.js') +const { formatLongDate } = require('../../../base.presenter.js') +const { returnRequirementReasons } = require('../../../../lib/static-lookups.lib.js') +/** + * Formats data for the `/return-requirements/setup/{sessionId}/check` page + * + * @param {module:SessionModel} session - The returns requirements session instance + * + * @returns {object} The data formatted for the view template + */ function go (session) { const { additionalSubmissionOptions, id: sessionId, journey, licence, note, reason } = session @@ -46,10 +53,10 @@ function _note (note) { function _reasonLink (sessionId, returnsRequired) { if (returnsRequired) { - return `/system/return-requirements/${sessionId}/reason` + return `/system/return-requirements/setup/${sessionId}/reason` } - return `/system/return-requirements/${sessionId}/no-returns-required` + return `/system/return-requirements/setup/${sessionId}/no-returns-required` } function _startDate (session) { diff --git a/app/presenters/return-requirements/check/returns-requirements.presenter.js b/app/presenters/return-requirements/setup/check/returns-requirements.presenter.js similarity index 92% rename from app/presenters/return-requirements/check/returns-requirements.presenter.js rename to app/presenters/return-requirements/setup/check/returns-requirements.presenter.js index bb7fadf703..1ed673aaff 100644 --- a/app/presenters/return-requirements/check/returns-requirements.presenter.js +++ b/app/presenters/return-requirements/setup/check/returns-requirements.presenter.js @@ -1,9 +1,14 @@ 'use strict' -const { formatAbstractionDate } = require('../../base.presenter.js') -const { returnRequirementFrequencies } = require('../../../lib/static-lookups.lib.js') +/** + * Formats return requirements data for the `/return-requirements/setup/{sessionId}/check` page + * @module ReturnRequirementsPresenter + */ + +const { formatAbstractionDate } = require('../../../base.presenter.js') +const { returnRequirementFrequencies } = require('../../../../lib/static-lookups.lib.js') -const agreementsExceptionsText = { +const AGREEMENTS_EXCEPTIONS = { none: 'None', 'gravity-fill': 'Gravity fill', 'transfer-re-abstraction-scheme': 'Transfer re-abstraction scheme', @@ -12,12 +17,7 @@ const agreementsExceptionsText = { } /** - * Formats return requirements data for the `/return-requirements/{sessionId}/check` page - * @module ReturnRequirementsPresenter - */ - -/** - * Formats return requirements data for the `/return-requirements/{sessionId}/check` page + * Formats return requirements data for the `/return-requirements/setup/{sessionId}/check` page * * @param {object[]} requirements - The existing return requirements in the current session * @param {module:PointModel[]} points - All points linked to the licence version purposes linked to the current licence @@ -48,7 +48,7 @@ function _abstractionPeriod (abstractionPeriod) { function _agreementsExceptions (agreementsExceptions) { const formattedExceptions = agreementsExceptions.map((exception) => { - return agreementsExceptionsText[exception] + return AGREEMENTS_EXCEPTIONS[exception] }) if (formattedExceptions.length === 1) { diff --git a/app/presenters/return-requirements/existing.presenter.js b/app/presenters/return-requirements/setup/existing.presenter.js similarity index 84% rename from app/presenters/return-requirements/existing.presenter.js rename to app/presenters/return-requirements/setup/existing.presenter.js index 62d94fe891..4c0193cebe 100644 --- a/app/presenters/return-requirements/existing.presenter.js +++ b/app/presenters/return-requirements/setup/existing.presenter.js @@ -1,15 +1,15 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/existing` page + * Formats data for the `/return-requirements/setup/{sessionId}/existing` page * @module ExistingPresenter */ -const { formatLongDate } = require('../base.presenter.js') -const { returnRequirementReasons } = require('../../lib/static-lookups.lib.js') +const { formatLongDate } = require('../../base.presenter.js') +const { returnRequirementReasons } = require('../../../lib/static-lookups.lib.js') /** - * Formats data for the `/return-requirements/{sessionId}/existing` page + * Formats data for the `/return-requirements/setup/{sessionId}/existing` page * * @param {module:SessionModel} session - The returns requirements session instance * diff --git a/app/presenters/return-requirements/frequency-collected.presenter.js b/app/presenters/return-requirements/setup/frequency-collected.presenter.js similarity index 72% rename from app/presenters/return-requirements/frequency-collected.presenter.js rename to app/presenters/return-requirements/setup/frequency-collected.presenter.js index 40d122c363..b5258aa559 100644 --- a/app/presenters/return-requirements/frequency-collected.presenter.js +++ b/app/presenters/return-requirements/setup/frequency-collected.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/frequency-collected` page + * Formats data for the `/return-requirements/setup/{sessionId}/frequency-collected` page * @module FrequencyCollectedPresenter -*/ + */ /** - * Formats data for the `/return-requirements/{sessionId}/frequency-collected` page + * Formats data for the `/return-requirements/setup/{sessionId}/frequency-collected` page * * @param {module:SessionModel} session - The returns requirements session instance * @param {string} requirementIndex - The index of the requirement being added or changed @@ -30,10 +30,10 @@ function _backLink (session, requirementIndex) { const { checkPageVisited, id } = session if (checkPageVisited) { - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } - return `/system/return-requirements/${id}/site-description/${requirementIndex}` + return `/system/return-requirements/setup/${id}/site-description/${requirementIndex}` } module.exports = { diff --git a/app/presenters/return-requirements/frequency-reported.presenter.js b/app/presenters/return-requirements/setup/frequency-reported.presenter.js similarity index 72% rename from app/presenters/return-requirements/frequency-reported.presenter.js rename to app/presenters/return-requirements/setup/frequency-reported.presenter.js index afafb01f35..ab2425e383 100644 --- a/app/presenters/return-requirements/frequency-reported.presenter.js +++ b/app/presenters/return-requirements/setup/frequency-reported.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/frequency-reported` page + * Formats data for the `/return-requirements/setup/{sessionId}/frequency-reported` page * @module FrequencyReportedPresenter -*/ + */ /** - * Formats data for the `/return-requirements/{sessionId}/frequency-reported` page + * Formats data for the `/return-requirements/setup/{sessionId}/frequency-reported` page * * @param {module:SessionModel} session - The returns requirements session instance * @param {string} requirementIndex - The index of the requirement being added or changed @@ -30,10 +30,10 @@ function _backLink (session, requirementIndex) { const { checkPageVisited, id } = session if (checkPageVisited) { - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } - return `/system/return-requirements/${id}/frequency-collected/${requirementIndex}` + return `/system/return-requirements/setup/${id}/frequency-collected/${requirementIndex}` } module.exports = { diff --git a/app/presenters/return-requirements/method.presenter.js b/app/presenters/return-requirements/setup/method.presenter.js similarity index 67% rename from app/presenters/return-requirements/method.presenter.js rename to app/presenters/return-requirements/setup/method.presenter.js index 72131667f7..58892aebed 100644 --- a/app/presenters/return-requirements/method.presenter.js +++ b/app/presenters/return-requirements/setup/method.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/method` page + * Formats data for the `/return-requirements/setup/{sessionId}/method` page * @module MethodPresenter */ /** - * Formats data for the `/return-requirements/{sessionId}/method` page + * Formats data for the `/return-requirements/setup/{sessionId}/method` page * * @param {module:SessionModel} session - The returns requirements session instance * @@ -16,7 +16,7 @@ function go (session) { const { id: sessionId, licence, method } = session return { - backLink: `/system/return-requirements/${sessionId}/reason`, + backLink: `/system/return-requirements/setup/${sessionId}/reason`, displayCopyExisting: licence.returnVersions.length > 0, licenceRef: licence.licenceRef, method: method ?? null, diff --git a/app/presenters/return-requirements/no-returns-required.presenter.js b/app/presenters/return-requirements/setup/no-returns-required.presenter.js similarity index 65% rename from app/presenters/return-requirements/no-returns-required.presenter.js rename to app/presenters/return-requirements/setup/no-returns-required.presenter.js index 07831195e8..badc81b894 100644 --- a/app/presenters/return-requirements/no-returns-required.presenter.js +++ b/app/presenters/return-requirements/setup/no-returns-required.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/no-returns-required` page + * Formats data for the `/return-requirements/setup/{sessionId}/no-returns-required` page * @module NoReturnsRequiredPresenter */ /** - * Formats data for the `/return-requirements/{sessionId}/no-returns-required` page + * Formats data for the `/return-requirements/setup/{sessionId}/no-returns-required` page * * @param {module:SessionModel} session - The returns requirements session instance * @@ -27,10 +27,10 @@ function _backLink (session) { const { checkPageVisited, id } = session if (checkPageVisited) { - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } - return `/system/return-requirements/${id}/start-date` + return `/system/return-requirements/setup/${id}/start-date` } module.exports = { diff --git a/app/presenters/return-requirements/note.presenter.js b/app/presenters/return-requirements/setup/note.presenter.js similarity index 65% rename from app/presenters/return-requirements/note.presenter.js rename to app/presenters/return-requirements/setup/note.presenter.js index aa10042ef7..4119a4bf09 100644 --- a/app/presenters/return-requirements/note.presenter.js +++ b/app/presenters/return-requirements/setup/note.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/note` page + * Formats data for the `/return-requirements/setup/{sessionId}/note` page * @module NotePresenter */ /** - * Formats data for the `/return-requirements/{sessionId}/note` page + * Formats data for the `/return-requirements/setup/{sessionId}/note` page * * @param {module:SessionModel} session - The returns requirements session instance * @@ -16,7 +16,7 @@ function go (session) { const { id: sessionId, licence, note } = session return { - backLink: `/system/return-requirements/${sessionId}/check`, + backLink: `/system/return-requirements/setup/${sessionId}/check`, licenceRef: licence.licenceRef, note: note ? note.content : null, sessionId diff --git a/app/presenters/return-requirements/points.presenter.js b/app/presenters/return-requirements/setup/points.presenter.js similarity index 84% rename from app/presenters/return-requirements/points.presenter.js rename to app/presenters/return-requirements/setup/points.presenter.js index c8639811b2..d24394c9e8 100644 --- a/app/presenters/return-requirements/points.presenter.js +++ b/app/presenters/return-requirements/setup/points.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/points` page + * Formats data for the `/return-requirements/setup/{sessionId}/points` page * @module PointsPresenter */ /** - * Formats data for the `/return-requirements/{sessionId}/points` page + * Formats data for the `/return-requirements/setup/{sessionId}/points` page * * @param {module:SessionModel} session - The returns requirements session instance * @param {string} requirementIndex - The index of the requirement being added or changed @@ -33,10 +33,10 @@ function _backLink (session, requirementIndex) { const { checkPageVisited, id } = session if (checkPageVisited) { - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } - return `/system/return-requirements/${id}/purpose/${requirementIndex}` + return `/system/return-requirements/setup/${id}/purpose/${requirementIndex}` } function _licencePoints (points) { diff --git a/app/presenters/return-requirements/purpose.presenter.js b/app/presenters/return-requirements/setup/purpose.presenter.js similarity index 88% rename from app/presenters/return-requirements/purpose.presenter.js rename to app/presenters/return-requirements/setup/purpose.presenter.js index 026ecab724..dd73fdceb7 100644 --- a/app/presenters/return-requirements/purpose.presenter.js +++ b/app/presenters/return-requirements/setup/purpose.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/purpose` page + * Formats data for the `/return-requirements/setup/{sessionId}/purpose` page * @module PurposePresenter */ /** - * Formats data for the `/return-requirements/{sessionId}/purpose` page + * Formats data for the `/return-requirements/setup/{sessionId}/purpose` page * * @param {module:SessionModel} session - The returns requirements session instance * @param {string} requirementIndex - The index of the requirement being added or changed @@ -40,10 +40,10 @@ function _backLink (session) { // scenario 'Back' also needs to take them back to `/check`. Hence, the logic is different in this presenter when // compared with the other setup pages. if (checkPageVisited || requirements.length > 1) { - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } - return `/system/return-requirements/${id}/method` + return `/system/return-requirements/setup/${id}/method` } function _purposes (licencePurposes, requirementPurposes) { diff --git a/app/presenters/return-requirements/reason.presenter.js b/app/presenters/return-requirements/setup/reason.presenter.js similarity index 66% rename from app/presenters/return-requirements/reason.presenter.js rename to app/presenters/return-requirements/setup/reason.presenter.js index df34b3a32f..6a89d051b8 100644 --- a/app/presenters/return-requirements/reason.presenter.js +++ b/app/presenters/return-requirements/setup/reason.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/reason` page + * Formats data for the `/return-requirements/setup/{sessionId}/reason` page * @module ReasonPresenter */ /** - * Formats data for the `/return-requirements/{sessionId}/reason` page + * Formats data for the `/return-requirements/setup/{sessionId}/reason` page * * @param {module:SessionModel} session - The returns requirements session instance * @@ -27,10 +27,10 @@ function _backLink (session) { const { checkPageVisited, id } = session if (checkPageVisited) { - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } - return `/system/return-requirements/${id}/start-date` + return `/system/return-requirements/setup/${id}/start-date` } module.exports = { diff --git a/app/presenters/return-requirements/remove.presenter.js b/app/presenters/return-requirements/setup/remove.presenter.js similarity index 79% rename from app/presenters/return-requirements/remove.presenter.js rename to app/presenters/return-requirements/setup/remove.presenter.js index b5ae1c342c..3b0bf08bc8 100644 --- a/app/presenters/return-requirements/remove.presenter.js +++ b/app/presenters/return-requirements/setup/remove.presenter.js @@ -1,15 +1,15 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/remove/{requirementIndex}` page + * Formats data for the `/return-requirements/setup/{sessionId}/remove/{requirementIndex}` page * @module RemovePresenter -*/ + */ -const { formatLongDate } = require('../base.presenter.js') -const { returnRequirementFrequencies } = require('../../lib/static-lookups.lib.js') +const { formatLongDate } = require('../../base.presenter.js') +const { returnRequirementFrequencies } = require('../../../lib/static-lookups.lib.js') /** - * Formats data for the `/return-requirements/{sessionId}/remove/{requirementIndex}` page + * Formats data for the `/return-requirements/setup/{sessionId}/remove/{requirementIndex}` page * * @param {module:SessionModel} session - The returns requirements session instance * @param {string} requirementIndex - The index of the requirement being added or changed @@ -33,7 +33,7 @@ function go (session, requirementIndex) { function _backLink (session) { const { id } = session - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } function _formattedReturnRequirement (requirement) { diff --git a/app/presenters/return-requirements/returns-cycle.presenter.js b/app/presenters/return-requirements/setup/returns-cycle.presenter.js similarity index 72% rename from app/presenters/return-requirements/returns-cycle.presenter.js rename to app/presenters/return-requirements/setup/returns-cycle.presenter.js index a875bfbafd..66e6562169 100644 --- a/app/presenters/return-requirements/returns-cycle.presenter.js +++ b/app/presenters/return-requirements/setup/returns-cycle.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/returns-cycle` page + * Formats data for the `/return-requirements/setup/{sessionId}/returns-cycle` page * @module ReturnsCyclePresenter -*/ + */ /** - * Formats data for the `/return-requirements/{sessionId}/returns-cycle` page + * Formats data for the `/return-requirements/setup/{sessionId}/returns-cycle` page * * @param {module:SessionModel} session - The returns requirements session instance * @param {string} requirementIndex - The index of the requirement being added or changed @@ -30,10 +30,10 @@ function _backLink (session, requirementIndex) { const { checkPageVisited, id } = session if (checkPageVisited) { - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } - return `/system/return-requirements/${id}/abstraction-period/${requirementIndex}` + return `/system/return-requirements/setup/${id}/abstraction-period/${requirementIndex}` } module.exports = { diff --git a/app/presenters/return-requirements/site-description.presenter.js b/app/presenters/return-requirements/setup/site-description.presenter.js similarity index 72% rename from app/presenters/return-requirements/site-description.presenter.js rename to app/presenters/return-requirements/setup/site-description.presenter.js index 1ed4580ab2..23fc4af165 100644 --- a/app/presenters/return-requirements/site-description.presenter.js +++ b/app/presenters/return-requirements/setup/site-description.presenter.js @@ -1,12 +1,12 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/site-description` page + * Formats data for the `/return-requirements/setup/{sessionId}/site-description` page * @module SiteDescriptionPresenter -*/ + */ /** - * Formats data for the `/return-requirements/{sessionId}/site-description` page + * Formats data for the `/return-requirements/setup/{sessionId}/site-description` page * * @param {module:SessionModel} session - The returns requirements session instance * @param {string} requirementIndex - The index of the requirement being added or changed @@ -30,10 +30,10 @@ function _backLink (session, requirementIndex) { const { checkPageVisited, id } = session if (checkPageVisited) { - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } - return `/system/return-requirements/${id}/returns-cycle/${requirementIndex}` + return `/system/return-requirements/setup/${id}/returns-cycle/${requirementIndex}` } module.exports = { diff --git a/app/presenters/return-requirements/start-date.presenter.js b/app/presenters/return-requirements/setup/start-date.presenter.js similarity index 79% rename from app/presenters/return-requirements/start-date.presenter.js rename to app/presenters/return-requirements/setup/start-date.presenter.js index 013f60a577..be3611b74d 100644 --- a/app/presenters/return-requirements/start-date.presenter.js +++ b/app/presenters/return-requirements/setup/start-date.presenter.js @@ -1,15 +1,15 @@ 'use strict' /** - * Formats data for the `/return-requirements/{sessionId}/start-date` page + * Formats data for the `/return-requirements/setup/{sessionId}/start-date` page * @module StartDatePresenter -*/ + */ -const FeatureFlagsConfig = require('../../../config/feature-flags.config.js') -const { formatLongDate } = require('../base.presenter.js') +const FeatureFlagsConfig = require('../../../../config/feature-flags.config.js') +const { formatLongDate } = require('../../base.presenter.js') /** - * Formats data for the `/return-requirements/{sessionId}/start-date` page + * Formats data for the `/return-requirements/setup/{sessionId}/start-date` page * * @param {module:SessionModel} session - The returns requirements session instance * @@ -42,7 +42,7 @@ function _backLink (session) { const { checkPageVisited, id, licence } = session if (checkPageVisited) { - return `/system/return-requirements/${id}/check` + return `/system/return-requirements/setup/${id}/check` } if (FeatureFlagsConfig.enableSystemLicenceView) { diff --git a/app/presenters/return-requirements/view.presenter.js b/app/presenters/return-requirements/view.presenter.js index b97b4039b2..bb07dbcd80 100644 --- a/app/presenters/return-requirements/view.presenter.js +++ b/app/presenters/return-requirements/view.presenter.js @@ -1,7 +1,7 @@ 'use strict' /** - * Formats requirements for returns data for the `/return-requirements/{sessionId}/view` page + * Formats return version data ready for presenting in the view return version page * @module ViewPresenter */ @@ -10,12 +10,12 @@ const { formatLongDate } = require('../base.presenter.js') const { returnRequirementReasons, returnRequirementFrequencies } = require('../../lib/static-lookups.lib.js') /** - * Formats requirements for returns data for the `/return-requirements/{sessionId}/view` page + * Formats return version data ready for presenting in the view return version page * - * @param {ReturnVersionModel[]} returnVersion - The return version and associated, licence, and return requirements - * (requirement, points, purposes) returned by FetchRequirementsForReturns + * @param {ReturnVersionModel} returnVersion - The return version and associated, licence, and return requirements + * (requirement, points, purposes) * - * @returns {object} requirements for returns data needed by the view template + * @returns {object} page data needed by the view template */ function go (returnVersion) { const { licence, multipleUpload, returnRequirements, startDate, status } = diff --git a/app/routes/return-requirement.routes.js b/app/routes/return-requirement.routes.js deleted file mode 100644 index 17494d5278..0000000000 --- a/app/routes/return-requirement.routes.js +++ /dev/null @@ -1,488 +0,0 @@ -'use strict' - -const ReturnRequirementsController = require('../controllers/return-requirements.controller.js') - -const routes = [ - { - method: 'GET', - path: '/return-requirements/{sessionId}/abstraction-period/{requirementIndex}', - options: { - handler: ReturnRequirementsController.abstractionPeriod, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/abstraction-period/{requirementIndex}', - options: { - handler: ReturnRequirementsController.submitAbstractionPeriod, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/add', - options: { - handler: ReturnRequirementsController.add, - auth: { - access: { - scope: ['billing'] - } - } - } - - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/additional-submission-options', - options: { - handler: ReturnRequirementsController.additionalSubmissionOptions, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/additional-submission-options', - options: { - handler: ReturnRequirementsController.submitAdditionalSubmissionOptions, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/agreements-exceptions/{requirementIndex}', - options: { - handler: ReturnRequirementsController.agreementsExceptions, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/agreements-exceptions/{requirementIndex}', - options: { - handler: ReturnRequirementsController.submitAgreementsExceptions, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{licenceId}/approved', - options: { - handler: ReturnRequirementsController.approved, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/cancel', - options: { - handler: ReturnRequirementsController.cancel, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/cancel', - options: { - handler: ReturnRequirementsController.submitCancel, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/check', - options: { - handler: ReturnRequirementsController.check, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/check', - options: { - handler: ReturnRequirementsController.submitCheck, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/delete-note', - options: { - handler: ReturnRequirementsController.deleteNote, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/existing', - options: { - handler: ReturnRequirementsController.existing, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/existing', - options: { - handler: ReturnRequirementsController.submitExisting, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/frequency-collected/{requirementIndex}', - options: { - handler: ReturnRequirementsController.frequencyCollected, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/frequency-collected/{requirementIndex}', - options: { - handler: ReturnRequirementsController.submitFrequencyCollected, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/frequency-reported/{requirementIndex}', - options: { - handler: ReturnRequirementsController.frequencyReported, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/frequency-reported/{requirementIndex}', - options: { - handler: ReturnRequirementsController.submitFrequencyReported, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/method', - options: { - handler: ReturnRequirementsController.method, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/method', - options: { - handler: ReturnRequirementsController.submitMethod, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/no-returns-required', - options: { - handler: ReturnRequirementsController.noReturnsRequired, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/no-returns-required', - options: { - handler: ReturnRequirementsController.submitNoReturnsRequired, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/note', - options: { - handler: ReturnRequirementsController.note, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/note', - options: { - handler: ReturnRequirementsController.submitNote, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/points/{requirementIndex}', - options: { - handler: ReturnRequirementsController.points, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/points/{requirementIndex}', - options: { - handler: ReturnRequirementsController.submitPoints, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/purpose/{requirementIndex}', - options: { - handler: ReturnRequirementsController.purpose, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/purpose/{requirementIndex}', - options: { - handler: ReturnRequirementsController.submitPurpose, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/reason', - options: { - handler: ReturnRequirementsController.reason, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/reason', - options: { - handler: ReturnRequirementsController.submitReason, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/remove/{requirementIndex}', - options: { - handler: ReturnRequirementsController.remove, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/remove/{requirementIndex}', - options: { - handler: ReturnRequirementsController.submitRemove, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/returns-cycle/{requirementIndex}', - options: { - handler: ReturnRequirementsController.returnsCycle, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/returns-cycle/{requirementIndex}', - options: { - handler: ReturnRequirementsController.submitReturnsCycle, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/site-description/{requirementIndex}', - options: { - handler: ReturnRequirementsController.siteDescription, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'POST', - path: '/return-requirements/{sessionId}/site-description/{requirementIndex}', - options: { - handler: ReturnRequirementsController.submitSiteDescription, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{sessionId}/start-date', - options: { - handler: ReturnRequirementsController.startDate, - auth: { - access: { - scope: ['billing'] - } - } - } - }, { - method: 'POST', - path: '/return-requirements/{sessionId}/start-date', - options: { - handler: ReturnRequirementsController.submitStartDate, - auth: { - access: { - scope: ['billing'] - } - } - } - }, - { - method: 'GET', - path: '/return-requirements/{returnVersionId}/view', - options: { - handler: ReturnRequirementsController.view, - auth: { - access: { - scope: ['billing'] - } - } - } - } -] - -module.exports = routes diff --git a/app/routes/return-requirements-setup.routes.js b/app/routes/return-requirements-setup.routes.js new file mode 100644 index 0000000000..d27bf507c3 --- /dev/null +++ b/app/routes/return-requirements-setup.routes.js @@ -0,0 +1,476 @@ +'use strict' + +const ReturnRequirementsSetupController = require('../controllers/return-requirements-setup.controller.js') + +const routes = [ + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/abstraction-period/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.abstractionPeriod, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/abstraction-period/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.submitAbstractionPeriod, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/add', + options: { + handler: ReturnRequirementsSetupController.add, + auth: { + access: { + scope: ['billing'] + } + } + } + + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/additional-submission-options', + options: { + handler: ReturnRequirementsSetupController.additionalSubmissionOptions, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/additional-submission-options', + options: { + handler: ReturnRequirementsSetupController.submitAdditionalSubmissionOptions, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/agreements-exceptions/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.agreementsExceptions, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/agreements-exceptions/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.submitAgreementsExceptions, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{licenceId}/approved', + options: { + handler: ReturnRequirementsSetupController.approved, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/cancel', + options: { + handler: ReturnRequirementsSetupController.cancel, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/cancel', + options: { + handler: ReturnRequirementsSetupController.submitCancel, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/check', + options: { + handler: ReturnRequirementsSetupController.check, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/check', + options: { + handler: ReturnRequirementsSetupController.submitCheck, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/delete-note', + options: { + handler: ReturnRequirementsSetupController.deleteNote, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/existing', + options: { + handler: ReturnRequirementsSetupController.existing, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/existing', + options: { + handler: ReturnRequirementsSetupController.submitExisting, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/frequency-collected/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.frequencyCollected, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/frequency-collected/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.submitFrequencyCollected, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/frequency-reported/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.frequencyReported, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/frequency-reported/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.submitFrequencyReported, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/method', + options: { + handler: ReturnRequirementsSetupController.method, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/method', + options: { + handler: ReturnRequirementsSetupController.submitMethod, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/no-returns-required', + options: { + handler: ReturnRequirementsSetupController.noReturnsRequired, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/no-returns-required', + options: { + handler: ReturnRequirementsSetupController.submitNoReturnsRequired, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/note', + options: { + handler: ReturnRequirementsSetupController.note, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/note', + options: { + handler: ReturnRequirementsSetupController.submitNote, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/points/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.points, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/points/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.submitPoints, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/purpose/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.purpose, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/purpose/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.submitPurpose, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/reason', + options: { + handler: ReturnRequirementsSetupController.reason, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/reason', + options: { + handler: ReturnRequirementsSetupController.submitReason, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/remove/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.remove, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/remove/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.submitRemove, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/returns-cycle/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.returnsCycle, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/returns-cycle/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.submitReturnsCycle, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/site-description/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.siteDescription, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/site-description/{requirementIndex}', + options: { + handler: ReturnRequirementsSetupController.submitSiteDescription, + auth: { + access: { + scope: ['billing'] + } + } + } + }, + { + method: 'GET', + path: '/return-requirements/setup/{sessionId}/start-date', + options: { + handler: ReturnRequirementsSetupController.startDate, + auth: { + access: { + scope: ['billing'] + } + } + } + }, { + method: 'POST', + path: '/return-requirements/setup/{sessionId}/start-date', + options: { + handler: ReturnRequirementsSetupController.submitStartDate, + auth: { + access: { + scope: ['billing'] + } + } + } + } +] + +module.exports = routes diff --git a/app/routes/return-requirements.routes.js b/app/routes/return-requirements.routes.js new file mode 100644 index 0000000000..d94b4ec967 --- /dev/null +++ b/app/routes/return-requirements.routes.js @@ -0,0 +1,20 @@ +'use strict' + +const ReturnRequirementsController = require('../controllers/return-requirements.controller.js') + +const routes = [ + { + method: 'GET', + path: '/return-requirements/{id}', + options: { + handler: ReturnRequirementsController.view, + auth: { + access: { + scope: ['billing'] + } + } + } + } +] + +module.exports = routes diff --git a/app/services/return-requirements/fetch-return-version.service.js b/app/services/return-requirements/fetch-return-version.service.js index afe1d743ae..d40aa91cec 100644 --- a/app/services/return-requirements/fetch-return-version.service.js +++ b/app/services/return-requirements/fetch-return-version.service.js @@ -1,29 +1,27 @@ 'use strict' /** - * Fetches requirements for returns by the return version id - * @module FetchRequirementsForReturnsService + * Fetches the matching return version and associated licence, return requirements, points and purposes data + * @module FetchReturnVersionService */ const ReturnVersionModel = require('../../models/return-version.model.js') /** - * Fetches requirements for returns by the return version id + * Fetches the matching return version and associated licence, return requirements, points and purposes data * - * Includes the licence, return requirements (requirement, points, purposes) - * - * @param {string} returnVersionId - The UUID of the selected return version to get requirements for + * @param {string} id - The UUID for the bill run to fetch * * @returns {Promise} The return version plus linked licence, return requirements (requirement, * points, purposes) */ -async function go (returnVersionId) { - return _fetch(returnVersionId) +async function go (id) { + return _fetch(id) } -async function _fetch (returnVersionId) { +async function _fetch (id) { return ReturnVersionModel.query() - .findById(returnVersionId) + .findById(id) .select([ 'createdAt', 'id', diff --git a/app/services/return-requirements/abstraction-period.service.js b/app/services/return-requirements/setup/abstraction-period.service.js similarity index 77% rename from app/services/return-requirements/abstraction-period.service.js rename to app/services/return-requirements/setup/abstraction-period.service.js index 0d850bc389..721a516a0f 100644 --- a/app/services/return-requirements/abstraction-period.service.js +++ b/app/services/return-requirements/setup/abstraction-period.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/abstraction-period` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/abstraction-period` page * @module AbstractionPeriodService */ -const AbstractionPeriodPresenter = require('../../presenters/return-requirements/abstraction-period.presenter.js') -const SessionModel = require('../../models/session.model.js') +const AbstractionPeriodPresenter = require('../../../presenters/return-requirements/setup/abstraction-period.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/abstraction-period` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/abstraction-period` page * * Supports generating the data needed for the abstraction period page in the return requirements setup journey. It * fetches the current session record and combines it with the date fields and other information needed for the form. @@ -18,7 +18,7 @@ const SessionModel = require('../../models/session.model.js') * @param {string} requirementIndex - The index of the requirement being added or changed * * @returns {Promise} The view data for the abstraction period page -*/ + */ async function go (sessionId, requirementIndex) { const session = await SessionModel.query().findById(sessionId) diff --git a/app/services/return-requirements/add.service.js b/app/services/return-requirements/setup/add.service.js similarity index 93% rename from app/services/return-requirements/add.service.js rename to app/services/return-requirements/setup/add.service.js index 33573e7179..135c57768c 100644 --- a/app/services/return-requirements/add.service.js +++ b/app/services/return-requirements/setup/add.service.js @@ -5,7 +5,7 @@ * @module AddService */ -const SessionModel = require('../../models/session.model.js') +const SessionModel = require('../../../models/session.model.js') /** * Orchestrates adding an empty object to the requirements array in the session diff --git a/app/services/return-requirements/additional-submission-options.service.js b/app/services/return-requirements/setup/additional-submission-options.service.js similarity index 70% rename from app/services/return-requirements/additional-submission-options.service.js rename to app/services/return-requirements/setup/additional-submission-options.service.js index b42e51fe17..6e70d00c38 100644 --- a/app/services/return-requirements/additional-submission-options.service.js +++ b/app/services/return-requirements/setup/additional-submission-options.service.js @@ -2,16 +2,16 @@ /** * Orchestrates fetching and presenting the data for - * `/return-requirements/{sessionId}/additional-submission-options` page + * `/return-requirements/setup/{sessionId}/additional-submission-options` page * @module AdditionalSubmissionOptionsService */ -const AdditionalSubmissionOptionsPresenter = require('../../presenters/return-requirements/additional-submission-options.presenter.js') -const SessionModel = require('../../models/session.model.js') +const AdditionalSubmissionOptionsPresenter = require('../../../presenters/return-requirements/setup/additional-submission-options.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** * Orchestrates fetching and presenting the data for - * `/return-requirements/{sessionId}/additional-submission-options` page + * `/return-requirements/setup/{sessionId}/additional-submission-options` page * * Supports generating the data needed for the points page in the return requirements setup journey. It fetches the * current session record and combines it with the checkboxes and other information needed for the form. @@ -19,7 +19,7 @@ const SessionModel = require('../../models/session.model.js') * @param {string} sessionId - The UUID of the current session * * @returns {Promise} The view data for the points page -*/ + */ async function go (sessionId) { const session = await SessionModel.query().findById(sessionId) diff --git a/app/services/return-requirements/agreements-exceptions.service.js b/app/services/return-requirements/setup/agreements-exceptions.service.js similarity index 77% rename from app/services/return-requirements/agreements-exceptions.service.js rename to app/services/return-requirements/setup/agreements-exceptions.service.js index 1386cc7a92..4b1270232b 100644 --- a/app/services/return-requirements/agreements-exceptions.service.js +++ b/app/services/return-requirements/setup/agreements-exceptions.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/agreements-exceptions` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/agreements-exceptions` page * @module AgreementExceptionService */ -const AgreementsExceptionsPresenter = require('../../presenters/return-requirements/agreements-exceptions.presenter.js') -const SessionModel = require('../../models/session.model.js') +const AgreementsExceptionsPresenter = require('../../../presenters/return-requirements/setup/agreements-exceptions.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/agreements-exceptions` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/agreements-exceptions` page * * Supports generating the data needed for the agreements and exceptions page in the return requirements setup journey. * It fetches the current session record and combines it with the date fields and other information needed for the form. @@ -18,7 +18,7 @@ const SessionModel = require('../../models/session.model.js') * @param {string} requirementIndex - The index of the requirement being added or changed * * @returns {Promise} The view data for the agreements and exceptions page -*/ + */ async function go (sessionId, requirementIndex) { const session = await SessionModel.query().findById(sessionId) diff --git a/app/services/return-requirements/cancel.service.js b/app/services/return-requirements/setup/cancel.service.js similarity index 77% rename from app/services/return-requirements/cancel.service.js rename to app/services/return-requirements/setup/cancel.service.js index d4c5fef5e6..561d8e6505 100644 --- a/app/services/return-requirements/cancel.service.js +++ b/app/services/return-requirements/setup/cancel.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/cancel` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/cancel` page * @module CancelService */ -const CancelPresenter = require('../../presenters/return-requirements/cancel.presenter.js') -const SessionModel = require('../../models/session.model.js') +const CancelPresenter = require('../../../presenters/return-requirements/setup/cancel.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/cancel` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/cancel` page * * Supports generating the data needed for the cancel requirements page in the return requirements setup journey. It * fetches the current session record and combines it with the date fields and other information needed for the form. @@ -17,7 +17,7 @@ const SessionModel = require('../../models/session.model.js') * @param {string} sessionId - The UUID of the current session * * @returns {Promise} The view data for the cancel requirements page -*/ + */ async function go (sessionId) { const session = await SessionModel.query().findById(sessionId) diff --git a/app/services/return-requirements/check.service.js b/app/services/return-requirements/setup/check/check.service.js similarity index 72% rename from app/services/return-requirements/check.service.js rename to app/services/return-requirements/setup/check/check.service.js index b6a567de4b..25e244a7d8 100644 --- a/app/services/return-requirements/check.service.js +++ b/app/services/return-requirements/setup/check/check.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/check` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/check` page * @module CheckService */ -const CheckPresenter = require('../../presenters/return-requirements/check.presenter.js') -const FetchPointsService = require('./fetch-points.service.js') -const ReturnRequirementsPresenter = require('../../presenters/return-requirements/check/returns-requirements.presenter.js') -const SessionModel = require('../../models/session.model.js') +const CheckPresenter = require('../../../../presenters/return-requirements/setup/check/check.presenter.js') +const FetchPointsService = require('../fetch-points.service.js') +const ReturnRequirementsPresenter = require('../../../../presenters/return-requirements/setup/check/returns-requirements.presenter.js') +const SessionModel = require('../../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/check` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/check` page * * @param {string} sessionId - The UUID for return requirement setup session record * @param {object} yar - The Hapi `request.yar` session manager passed on by the controller diff --git a/app/services/return-requirements/generate-return-version-requirements.service.js b/app/services/return-requirements/setup/check/generate-return-version-requirements.service.js similarity index 93% rename from app/services/return-requirements/generate-return-version-requirements.service.js rename to app/services/return-requirements/setup/check/generate-return-version-requirements.service.js index cd4be21f56..9a92fcb285 100644 --- a/app/services/return-requirements/generate-return-version-requirements.service.js +++ b/app/services/return-requirements/setup/check/generate-return-version-requirements.service.js @@ -5,9 +5,9 @@ * @module GenerateReturnVersionRequirementsService */ -const LicenceModel = require('../../models/licence.model.js') -const LicenceVersionModel = require('../../models/licence-version.model.js') -const ReturnRequirementModel = require('../../models/return-requirement.model.js') +const LicenceModel = require('../../../../models/licence.model.js') +const LicenceVersionModel = require('../../../../models/licence-version.model.js') +const ReturnRequirementModel = require('../../../../models/return-requirement.model.js') /** * Uses the session data to generate the data sets required to create the return version requirements for a licence diff --git a/app/services/return-requirements/generate-return-version.service.js b/app/services/return-requirements/setup/check/generate-return-version.service.js similarity index 97% rename from app/services/return-requirements/generate-return-version.service.js rename to app/services/return-requirements/setup/check/generate-return-version.service.js index 313bd98106..7a0617b8e0 100644 --- a/app/services/return-requirements/generate-return-version.service.js +++ b/app/services/return-requirements/setup/check/generate-return-version.service.js @@ -7,7 +7,7 @@ const GenerateReturnVersionRequirementsService = require('./generate-return-version-requirements.service.js') const ProcessExistingReturnVersionsService = require('./process-existing-return-versions.service.js') -const ReturnVersionModel = require('../../models/return-version.model.js') +const ReturnVersionModel = require('../../../../models/return-version.model.js') /** * Uses the session data to generate the data sets required to create a new return version for a licence diff --git a/app/services/return-requirements/persist-return-version.service.js b/app/services/return-requirements/setup/check/persist-return-version.service.js similarity index 88% rename from app/services/return-requirements/persist-return-version.service.js rename to app/services/return-requirements/setup/check/persist-return-version.service.js index d5ade8dd4a..2d2b5a52e8 100644 --- a/app/services/return-requirements/persist-return-version.service.js +++ b/app/services/return-requirements/setup/check/persist-return-version.service.js @@ -5,10 +5,10 @@ * @module PersistReturnVersionService */ -const ReturnRequirementModel = require('../../models/return-requirement.model.js') -const ReturnRequirementPointModel = require('../../models/return-requirement-point.model.js') -const ReturnRequirementPurposeModel = require('../../models/return-requirement-purpose.model.js') -const ReturnVersionModel = require('../../models/return-version.model.js') +const ReturnRequirementModel = require('../../../../models/return-requirement.model.js') +const ReturnRequirementPointModel = require('../../../../models/return-requirement-point.model.js') +const ReturnRequirementPurposeModel = require('../../../../models/return-requirement-purpose.model.js') +const ReturnVersionModel = require('../../../../models/return-version.model.js') /** * Persists the data required to create a new return version diff --git a/app/services/return-requirements/process-existing-return-versions.service.js b/app/services/return-requirements/setup/check/process-existing-return-versions.service.js similarity index 99% rename from app/services/return-requirements/process-existing-return-versions.service.js rename to app/services/return-requirements/setup/check/process-existing-return-versions.service.js index f0986015d8..3b440d36de 100644 --- a/app/services/return-requirements/process-existing-return-versions.service.js +++ b/app/services/return-requirements/setup/check/process-existing-return-versions.service.js @@ -5,7 +5,7 @@ * @module ProcessExistingReturnVersionsService */ -const ReturnVersionModel = require('../../models/return-version.model.js') +const ReturnVersionModel = require('../../../../models/return-version.model.js') /** * Processes existing return versions to update the their `status` and `endDate` when a new return version is created diff --git a/app/services/return-requirements/submit-check.service.js b/app/services/return-requirements/setup/check/submit-check.service.js similarity index 94% rename from app/services/return-requirements/submit-check.service.js rename to app/services/return-requirements/setup/check/submit-check.service.js index def1b63fb9..2de3564008 100644 --- a/app/services/return-requirements/submit-check.service.js +++ b/app/services/return-requirements/setup/check/submit-check.service.js @@ -7,7 +7,7 @@ const GenerateReturnVersionService = require('./generate-return-version.service.js') const PersistReturnVersionService = require('./persist-return-version.service.js') -const SessionModel = require('../../models/session.model.js') +const SessionModel = require('../../../../models/session.model.js') /** * Manages converting the session data to return requirement records when check return requirements is confirmed diff --git a/app/services/return-requirements/delete-note.service.js b/app/services/return-requirements/setup/delete-note.service.js similarity index 73% rename from app/services/return-requirements/delete-note.service.js rename to app/services/return-requirements/setup/delete-note.service.js index 4cd52a13d5..36b50b29cc 100644 --- a/app/services/return-requirements/delete-note.service.js +++ b/app/services/return-requirements/setup/delete-note.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates deleting the notes data for `/return-requirements/{sessionId}/check` page + * Deletes the note from the return version currently being setup * @module DeleteNoteService */ -const SessionModel = require('../../models/session.model.js') +const SessionModel = require('../../../models/session.model.js') /** + * Deletes the note from the return version currently being setup * - * It first retrieves the session instance for the returns requirements journey in progress. - * - * Then it removes the notes data from the session. + * It first retrieves the session instance for the returns requirements journey in progress. Then it removes the notes + * data from the session. * * @param {string} sessionId - The id of the current session * @param {object} yar - The Hapi `request.yar` session manager passed on by the controller diff --git a/app/services/return-requirements/existing.service.js b/app/services/return-requirements/setup/existing.service.js similarity index 76% rename from app/services/return-requirements/existing.service.js rename to app/services/return-requirements/setup/existing.service.js index abaa61ffa8..894d4849cf 100644 --- a/app/services/return-requirements/existing.service.js +++ b/app/services/return-requirements/setup/existing.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/existing` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/existing` page * @module ExistingService */ -const ExistingPresenter = require('../../presenters/return-requirements/existing.presenter.js') -const SessionModel = require('../../models/session.model.js') +const ExistingPresenter = require('../../../presenters/return-requirements/setup/existing.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/existing` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/existing` page * * Supports generating the data needed for the existing page in the return requirements setup journey. It fetches the * current session record and from it determines what radio buttons to display to the user. diff --git a/app/services/return-requirements/fetch-existing-requirements.js b/app/services/return-requirements/setup/fetch-existing-requirements.js similarity index 96% rename from app/services/return-requirements/fetch-existing-requirements.js rename to app/services/return-requirements/setup/fetch-existing-requirements.js index 30184a0f97..53b4be9f0b 100644 --- a/app/services/return-requirements/fetch-existing-requirements.js +++ b/app/services/return-requirements/setup/fetch-existing-requirements.js @@ -5,7 +5,7 @@ * @module FetchExistingRequirementsService */ -const ReturnVersionModel = require('../../models/return-version.model.js') +const ReturnVersionModel = require('../../../models/return-version.model.js') /** * Fetches an existing return version and its return requirements in order for a new one to be copied from it diff --git a/app/services/return-requirements/fetch-points.service.js b/app/services/return-requirements/setup/fetch-points.service.js similarity index 96% rename from app/services/return-requirements/fetch-points.service.js rename to app/services/return-requirements/setup/fetch-points.service.js index 2395df3f57..75a8c812c0 100644 --- a/app/services/return-requirements/fetch-points.service.js +++ b/app/services/return-requirements/setup/fetch-points.service.js @@ -5,7 +5,7 @@ * @module FetchPointsService */ -const LicenceModel = require('../../models/licence.model.js') +const LicenceModel = require('../../../models/licence.model.js') /** * Fetches all LicenceVersionPurposePoints for the matching licenceId diff --git a/app/services/return-requirements/fetch-purposes.service.js b/app/services/return-requirements/setup/fetch-purposes.service.js similarity index 87% rename from app/services/return-requirements/fetch-purposes.service.js rename to app/services/return-requirements/setup/fetch-purposes.service.js index 08dd3505f8..943cb997ad 100644 --- a/app/services/return-requirements/fetch-purposes.service.js +++ b/app/services/return-requirements/setup/fetch-purposes.service.js @@ -1,14 +1,14 @@ 'use strict' /** - * Fetches a licence's purposes needed for `/return-requirements/{sessionId}/purpose` page + * Fetches a licence's purposes needed for `/return-requirements/setup/{sessionId}/purpose` page * @module FetchPurposesService */ -const PurposeModel = require('../../models/purpose.model.js') +const PurposeModel = require('../../../models/purpose.model.js') /** - * Fetches a licence's purposes needed for `/return-requirements/{sessionId}/purpose` page + * Fetches a licence's purposes needed for `/return-requirements/setup/{sessionId}/purpose` page * * @param {string} licenceId - The UUID for the licence to fetch * diff --git a/app/services/return-requirements/frequency-collected.service.js b/app/services/return-requirements/setup/frequency-collected.service.js similarity index 77% rename from app/services/return-requirements/frequency-collected.service.js rename to app/services/return-requirements/setup/frequency-collected.service.js index ef0f164c31..72e231f5ab 100644 --- a/app/services/return-requirements/frequency-collected.service.js +++ b/app/services/return-requirements/setup/frequency-collected.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/frequency-collected` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/frequency-collected` page * @module FrequencyCollectedService */ -const FrequencyCollectedPresenter = require('../../presenters/return-requirements/frequency-collected.presenter.js') -const SessionModel = require('../../models/session.model.js') +const FrequencyCollectedPresenter = require('../../../presenters/return-requirements/setup/frequency-collected.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/frequency-collected` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/frequency-collected` page * * Supports generating the data needed for the frequency collected page in the return requirements setup journey. It * fetches the current session record and combines it with the radio buttons and other information needed for the form. @@ -18,7 +18,7 @@ const SessionModel = require('../../models/session.model.js') * @param {string} requirementIndex - The index of the requirement being added or changed * * @returns {Promise} The view data for the frequency collected page -*/ + */ async function go (sessionId, requirementIndex) { const session = await SessionModel.query().findById(sessionId) diff --git a/app/services/return-requirements/frequency-reported.service.js b/app/services/return-requirements/setup/frequency-reported.service.js similarity index 77% rename from app/services/return-requirements/frequency-reported.service.js rename to app/services/return-requirements/setup/frequency-reported.service.js index 515aa306e1..e5fce3b322 100644 --- a/app/services/return-requirements/frequency-reported.service.js +++ b/app/services/return-requirements/setup/frequency-reported.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/frequency-reported` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/frequency-reported` page * @module FrequencyReportedService */ -const FrequencyReportedPresenter = require('../../presenters/return-requirements/frequency-reported.presenter.js') -const SessionModel = require('../../models/session.model.js') +const FrequencyReportedPresenter = require('../../../presenters/return-requirements/setup/frequency-reported.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/frequency-reported` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/frequency-reported` page * * Supports generating the data needed for the frequency reported page in the return requirements setup journey. It * fetches the current session record and combines it with the radio buttons and other information needed for the form. @@ -18,7 +18,7 @@ const SessionModel = require('../../models/session.model.js') * @param {string} requirementIndex - The index of the requirement being added or changed * * @returns {Promise} The view data for the frequency reported page -*/ + */ async function go (sessionId, requirementIndex) { const session = await SessionModel.query().findById(sessionId) diff --git a/app/services/return-requirements/generate-from-existing-requirements.service.js b/app/services/return-requirements/setup/generate-from-existing-requirements.service.js similarity index 100% rename from app/services/return-requirements/generate-from-existing-requirements.service.js rename to app/services/return-requirements/setup/generate-from-existing-requirements.service.js diff --git a/app/services/return-requirements/initiate-session.service.js b/app/services/return-requirements/setup/initiate-session.service.js similarity index 94% rename from app/services/return-requirements/initiate-session.service.js rename to app/services/return-requirements/setup/initiate-session.service.js index 440fac13b9..f7b105fca4 100644 --- a/app/services/return-requirements/initiate-session.service.js +++ b/app/services/return-requirements/setup/initiate-session.service.js @@ -7,9 +7,9 @@ const Boom = require('@hapi/boom') -const LicenceModel = require('../../../app/models/licence.model.js') -const ReturnRequirementModel = require('../../../app/models/return-requirement.model.js') -const SessionModel = require('../../models/session.model.js') +const LicenceModel = require('../../../models/licence.model.js') +const ReturnRequirementModel = require('../../../models/return-requirement.model.js') +const SessionModel = require('../../../models/session.model.js') /** * Initiates the session record using for setting up a new return requirement diff --git a/app/services/return-requirements/method/fetch-abstraction-data.service.js b/app/services/return-requirements/setup/method/fetch-abstraction-data.service.js similarity index 97% rename from app/services/return-requirements/method/fetch-abstraction-data.service.js rename to app/services/return-requirements/setup/method/fetch-abstraction-data.service.js index 2d82301e3d..3deb400573 100644 --- a/app/services/return-requirements/method/fetch-abstraction-data.service.js +++ b/app/services/return-requirements/setup/method/fetch-abstraction-data.service.js @@ -5,7 +5,7 @@ * @module FetchAbstractionDataService */ -const LicenceModel = require('../../../models/licence.model.js') +const LicenceModel = require('../../../../models/licence.model.js') /** * Fetches a licence's abstraction data based on the current version in order to generate new return requirements diff --git a/app/services/return-requirements/method/generate-from-abstraction-data.service.js b/app/services/return-requirements/setup/method/generate-from-abstraction-data.service.js similarity index 100% rename from app/services/return-requirements/method/generate-from-abstraction-data.service.js rename to app/services/return-requirements/setup/method/generate-from-abstraction-data.service.js diff --git a/app/services/return-requirements/method/method.service.js b/app/services/return-requirements/setup/method/method.service.js similarity index 77% rename from app/services/return-requirements/method/method.service.js rename to app/services/return-requirements/setup/method/method.service.js index 28a41e9857..78e60a03fa 100644 --- a/app/services/return-requirements/method/method.service.js +++ b/app/services/return-requirements/setup/method/method.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/method` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/method` page * @module MethodService */ -const MethodPresenter = require('../../../presenters/return-requirements/method.presenter.js') -const SessionModel = require('../../../models/session.model.js') +const MethodPresenter = require('../../../../presenters/return-requirements/setup/method.presenter.js') +const SessionModel = require('../../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/method` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/method` page * * Supports generating the data needed for the select reason page in the return requirements setup journey. It * fetches the current session record and combines it with the radio buttons and other information needed for the form. diff --git a/app/services/return-requirements/method/submit-method.service.js b/app/services/return-requirements/setup/method/submit-method.service.js similarity index 83% rename from app/services/return-requirements/method/submit-method.service.js rename to app/services/return-requirements/setup/method/submit-method.service.js index 96257d0a68..386ed64968 100644 --- a/app/services/return-requirements/method/submit-method.service.js +++ b/app/services/return-requirements/setup/method/submit-method.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/method` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/method` page * @module SubmitSetupService */ const GenerateFromAbstractionDataService = require('./generate-from-abstraction-data.service.js') -const SessionModel = require('../../../models/session.model.js') -const MethodPresenter = require('../../../presenters/return-requirements/method.presenter.js') -const MethodValidator = require('../../../validators/return-requirements/method.validator.js') +const SessionModel = require('../../../../models/session.model.js') +const MethodPresenter = require('../../../../presenters/return-requirements/setup/method.presenter.js') +const MethodValidator = require('../../../../validators/return-requirements/setup/method.validator.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/method` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/method` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/no-returns-required.service.js b/app/services/return-requirements/setup/no-returns-required.service.js similarity index 75% rename from app/services/return-requirements/no-returns-required.service.js rename to app/services/return-requirements/setup/no-returns-required.service.js index 143dfd6a14..3beca8073f 100644 --- a/app/services/return-requirements/no-returns-required.service.js +++ b/app/services/return-requirements/setup/no-returns-required.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/no-returns-required` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/no-returns-required` page * @module NoReturnsRequiredService */ -const NoReturnsRequiredPresenter = require('../../presenters/return-requirements/no-returns-required.presenter.js') -const SessionModel = require('../../models/session.model.js') +const NoReturnsRequiredPresenter = require('../../../presenters/return-requirements/setup/no-returns-required.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/no-returns-required` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/no-returns-required` page * * Supports generating the data needed for the no returns required page in the return requirements setup journey. It * fetches the current session record and combines it with the radio buttons and other information needed for the form. diff --git a/app/services/return-requirements/note.service.js b/app/services/return-requirements/setup/note.service.js similarity index 77% rename from app/services/return-requirements/note.service.js rename to app/services/return-requirements/setup/note.service.js index 0489067cec..b88efa3127 100644 --- a/app/services/return-requirements/note.service.js +++ b/app/services/return-requirements/setup/note.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/note` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/note` page * @module NoteService */ -const NotePresenter = require('../../presenters/return-requirements/note.presenter.js') -const SessionModel = require('../../models/session.model.js') +const NotePresenter = require('../../../presenters/return-requirements/setup/note.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/note` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/note` page * * Supports generating the data needed for the note page in the return requirements setup journey. It fetches the * current session record and combines it with textarea information needed for the form. diff --git a/app/services/return-requirements/points.service.js b/app/services/return-requirements/setup/points.service.js similarity index 76% rename from app/services/return-requirements/points.service.js rename to app/services/return-requirements/setup/points.service.js index 92bfdec8fc..7320f9c062 100644 --- a/app/services/return-requirements/points.service.js +++ b/app/services/return-requirements/setup/points.service.js @@ -1,16 +1,16 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/points` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/points` page * @module PointsService */ -const FetchPointsService = require('../../services/return-requirements/fetch-points.service.js') -const PointsPresenter = require('../../presenters/return-requirements/points.presenter.js') -const SessionModel = require('../../models/session.model.js') +const FetchPointsService = require('./fetch-points.service.js') +const PointsPresenter = require('../../../presenters/return-requirements/setup/points.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/points` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/points` page * * Supports generating the data needed for the points page in the return requirements setup journey. It fetches the * current session record and combines it with the checkboxes and other information needed for the form. diff --git a/app/services/return-requirements/purpose.service.js b/app/services/return-requirements/setup/purpose.service.js similarity index 81% rename from app/services/return-requirements/purpose.service.js rename to app/services/return-requirements/setup/purpose.service.js index 955acbcbdf..bc296963c2 100644 --- a/app/services/return-requirements/purpose.service.js +++ b/app/services/return-requirements/setup/purpose.service.js @@ -1,16 +1,16 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/purpose` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/purpose` page * @module PurposeService */ const FetchPurposesService = require('./fetch-purposes.service.js') -const SelectPurposePresenter = require('../../presenters/return-requirements/purpose.presenter.js') -const SessionModel = require('../../models/session.model.js') +const SelectPurposePresenter = require('../../../presenters/return-requirements/setup/purpose.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/purpose` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/purpose` page * * Supports generating the data needed for the purpose page in the return requirements setup journey. It fetches the * current session record and combines it with the checkboxes and other information needed for the form. diff --git a/app/services/return-requirements/reason.service.js b/app/services/return-requirements/setup/reason.service.js similarity index 70% rename from app/services/return-requirements/reason.service.js rename to app/services/return-requirements/setup/reason.service.js index 83741ecec9..d51fa8f513 100644 --- a/app/services/return-requirements/reason.service.js +++ b/app/services/return-requirements/setup/reason.service.js @@ -1,20 +1,20 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/reason` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/reason` page * @module SelectReasonService */ -const SelectReasonPresenter = require('../../presenters/return-requirements/reason.presenter.js') -const SessionModel = require('../../models/session.model.js') +const SelectReasonPresenter = require('../../../presenters/return-requirements/setup/reason.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/reason` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/reason` page * * Supports generating the data needed for the select reason page in the return requirements setup journey. It * fetches the current session record and combines it with the radio buttons and other information needed for the form. * - * @param {string} id - The UUID for return requirement setup session record + * @param {string} sessionId - The UUID for return requirement setup session record * * @returns {Promise} page data needed by the view template */ diff --git a/app/services/return-requirements/remove.service.js b/app/services/return-requirements/setup/remove.service.js similarity index 67% rename from app/services/return-requirements/remove.service.js rename to app/services/return-requirements/setup/remove.service.js index 6d55482cc0..70766dfaf2 100644 --- a/app/services/return-requirements/remove.service.js +++ b/app/services/return-requirements/setup/remove.service.js @@ -1,15 +1,17 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/remove/{requirementIndex}` page + * Orchestrates fetching and presenting the data for + * `/return-requirements/setup/{sessionId}/remove/{requirementIndex}` page * @module RemoveService */ -const RemovePresenter = require('../../presenters/return-requirements/remove.presenter.js') -const SessionModel = require('../../models/session.model.js') +const RemovePresenter = require('../../../presenters/return-requirements/setup/remove.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/remove/{requirementIndex}` page + * Orchestrates fetching and presenting the data for + * `/return-requirements/setup/{sessionId}/remove/{requirementIndex}` page * * Supports generating the data needed for the remove requirements page in the return requirements setup journey. It * fetches the current session record and combines it with the date fields and other information needed for the form. @@ -18,7 +20,7 @@ const SessionModel = require('../../models/session.model.js') * @param {string} requirementIndex - The index of the requirement being removed * * @returns {Promise} The view data for the remove requirements page -*/ + */ async function go (sessionId, requirementIndex) { const session = await SessionModel.query().findById(sessionId) const formattedData = RemovePresenter.go(session, requirementIndex) diff --git a/app/services/return-requirements/returns-cycle.service.js b/app/services/return-requirements/setup/returns-cycle.service.js similarity index 78% rename from app/services/return-requirements/returns-cycle.service.js rename to app/services/return-requirements/setup/returns-cycle.service.js index 4224e3d9d9..bc0b2b12e3 100644 --- a/app/services/return-requirements/returns-cycle.service.js +++ b/app/services/return-requirements/setup/returns-cycle.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/returns-cycle` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/returns-cycle` page * @module ReturnsCycleService */ -const ReturnsCyclePresenter = require('../../presenters/return-requirements/returns-cycle.presenter.js') -const SessionModel = require('../../models/session.model.js') +const ReturnsCyclePresenter = require('../../../presenters/return-requirements/setup/returns-cycle.presenter.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/returns-cycle` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/returns-cycle` page * * Supports generating the data needed for the returns cycle page in the return requirements setup journey. It fetches * the current session record and combines it with the radio buttons and other information needed for the form. @@ -18,7 +18,7 @@ const SessionModel = require('../../models/session.model.js') * @param {string} requirementIndex - The index of the requirement being added or changed * * @returns {Promise} The view data for the returns cycle page -*/ + */ async function go (sessionId, requirementIndex) { const session = await SessionModel.query().findById(sessionId) diff --git a/app/services/return-requirements/site-description.service.js b/app/services/return-requirements/setup/site-description.service.js similarity index 77% rename from app/services/return-requirements/site-description.service.js rename to app/services/return-requirements/setup/site-description.service.js index 0aa9a404ca..f25fd52eab 100644 --- a/app/services/return-requirements/site-description.service.js +++ b/app/services/return-requirements/setup/site-description.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/site-description` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/site-description` page * @module SiteDescriptionService */ -const SessionModel = require('../../models/session.model.js') -const SiteDescriptionPresenter = require('../../presenters/return-requirements/site-description.presenter.js') +const SessionModel = require('../../../models/session.model.js') +const SiteDescriptionPresenter = require('../../../presenters/return-requirements/setup/site-description.presenter.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/site-description` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/site-description` page * * Supports generating the data needed for the site description page in the return requirements setup journey. It * fetches the current session record and combines it with the date fields and other information needed for the form. @@ -18,7 +18,7 @@ const SiteDescriptionPresenter = require('../../presenters/return-requirements/s * @param {string} requirementIndex - The index of the requirement being added or changed * * @returns {Promise} The view data for the site description page -*/ + */ async function go (sessionId, requirementIndex) { const session = await SessionModel.query().findById(sessionId) diff --git a/app/services/return-requirements/start-date.service.js b/app/services/return-requirements/setup/start-date.service.js similarity index 76% rename from app/services/return-requirements/start-date.service.js rename to app/services/return-requirements/setup/start-date.service.js index 9119186e66..2716bc8f20 100644 --- a/app/services/return-requirements/start-date.service.js +++ b/app/services/return-requirements/setup/start-date.service.js @@ -1,15 +1,15 @@ 'use strict' /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/start-date` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/start-date` page * @module StartDateService */ -const SessionModel = require('../../models/session.model.js') -const StartDatePresenter = require('../../presenters/return-requirements/start-date.presenter.js') +const SessionModel = require('../../../models/session.model.js') +const StartDatePresenter = require('../../../presenters/return-requirements/setup/start-date.presenter.js') /** - * Orchestrates fetching and presenting the data for `/return-requirements/{sessionId}/start-date` page + * Orchestrates fetching and presenting the data for `/return-requirements/setup/{sessionId}/start-date` page * * Supports generating the data needed for the start date page in the return requirements setup journey. It fetches the * current session record and combines it with the radio buttons, date fields and other information needed for the form. @@ -17,7 +17,7 @@ const StartDatePresenter = require('../../presenters/return-requirements/start-d * @param {string} sessionId - The UUID of the current session * * @returns {Promise} The view data for the start date page -*/ + */ async function go (sessionId) { const session = await SessionModel.query().findById(sessionId) diff --git a/app/services/return-requirements/submit-abstraction-period.service.js b/app/services/return-requirements/setup/submit-abstraction-period.service.js similarity index 82% rename from app/services/return-requirements/submit-abstraction-period.service.js rename to app/services/return-requirements/setup/submit-abstraction-period.service.js index 2c9efcbf25..145d22f293 100644 --- a/app/services/return-requirements/submit-abstraction-period.service.js +++ b/app/services/return-requirements/setup/submit-abstraction-period.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/abstraction-period` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/abstraction-period` page * @module SubmitAbstractionPeriodService */ -const AbstractionPeriodPresenter = require('../../presenters/return-requirements/abstraction-period.presenter.js') -const AbstractionPeriodValidator = require('../../validators/return-requirements/abstraction-period.validator.js') -const GeneralLib = require('../../lib/general.lib.js') -const SessionModel = require('../../models/session.model.js') +const AbstractionPeriodPresenter = require('../../../presenters/return-requirements/setup/abstraction-period.presenter.js') +const AbstractionPeriodValidator = require('../../../validators/return-requirements/setup/abstraction-period.validator.js') +const GeneralLib = require('../../../lib/general.lib.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/abstraction-period` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/abstraction-period` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-additional-submission-options.service.js b/app/services/return-requirements/setup/submit-additional-submission-options.service.js similarity index 83% rename from app/services/return-requirements/submit-additional-submission-options.service.js rename to app/services/return-requirements/setup/submit-additional-submission-options.service.js index abd78c50fb..da171a28f4 100644 --- a/app/services/return-requirements/submit-additional-submission-options.service.js +++ b/app/services/return-requirements/setup/submit-additional-submission-options.service.js @@ -1,16 +1,16 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/additional-submission-options` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/additional-submission-options` page * @module AdditionalSubmissionOptionsService */ -const AdditionalSubmissionOptionsPresenter = require('../../presenters/return-requirements/additional-submission-options.presenter.js') -const AdditionalSubmissionOptionsValidator = require('../../validators/return-requirements/additional-submission-options.validator.js') -const SessionModel = require('../../models/session.model.js') +const AdditionalSubmissionOptionsPresenter = require('../../../presenters/return-requirements/setup/additional-submission-options.presenter.js') +const AdditionalSubmissionOptionsValidator = require('../../../validators/return-requirements/setup/additional-submission-options.validator.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/additional-submission-options` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/additional-submission-options` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-agreements-exceptions.service.js b/app/services/return-requirements/setup/submit-agreements-exceptions.service.js similarity index 82% rename from app/services/return-requirements/submit-agreements-exceptions.service.js rename to app/services/return-requirements/setup/submit-agreements-exceptions.service.js index 22e58d3d4b..83ad19f411 100644 --- a/app/services/return-requirements/submit-agreements-exceptions.service.js +++ b/app/services/return-requirements/setup/submit-agreements-exceptions.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/agreements-exceptions` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/agreements-exceptions` page * @module SubmitAgreementsExceptions */ -const AgreementsExceptionsPresenter = require('../../presenters/return-requirements/agreements-exceptions.presenter.js') -const AgreementsExceptionsValidator = require('../../validators/return-requirements/agreements-exceptions.validator.js') -const GeneralLib = require('../../lib/general.lib.js') -const SessionModel = require('../../models/session.model.js') +const AgreementsExceptionsPresenter = require('../../../presenters/return-requirements/setup/agreements-exceptions.presenter.js') +const AgreementsExceptionsValidator = require('../../../validators/return-requirements/setup/agreements-exceptions.validator.js') +const GeneralLib = require('../../../lib/general.lib.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/agreements-exceptions` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/agreements-exceptions` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-cancel.service.js b/app/services/return-requirements/setup/submit-cancel.service.js similarity index 91% rename from app/services/return-requirements/submit-cancel.service.js rename to app/services/return-requirements/setup/submit-cancel.service.js index c4605fc0da..bfc3afd102 100644 --- a/app/services/return-requirements/submit-cancel.service.js +++ b/app/services/return-requirements/setup/submit-cancel.service.js @@ -5,7 +5,7 @@ * @module SubmitCancelService */ -const SessionModel = require('../../models/session.model.js') +const SessionModel = require('../../../models/session.model.js') /** * Manages deleting the return requirement session when cancel is confirmed diff --git a/app/services/return-requirements/submit-existing.service.js b/app/services/return-requirements/setup/submit-existing.service.js similarity index 79% rename from app/services/return-requirements/submit-existing.service.js rename to app/services/return-requirements/setup/submit-existing.service.js index 094de38c62..9b5c031776 100644 --- a/app/services/return-requirements/submit-existing.service.js +++ b/app/services/return-requirements/setup/submit-existing.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/existing` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/existing` page * @module SubmitExistingService */ -const ExistingPresenter = require('../../presenters/return-requirements/existing.presenter.js') -const ExistingValidator = require('../../validators/return-requirements/existing.validator.js') +const ExistingPresenter = require('../../../presenters/return-requirements/setup/existing.presenter.js') +const ExistingValidator = require('../../../validators/return-requirements/setup/existing.validator.js') const GenerateFromExistingRequirementsService = require('./generate-from-existing-requirements.service.js') -const SessionModel = require('../../models/session.model.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/existing` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/existing` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-frequency-collected.service.js b/app/services/return-requirements/setup/submit-frequency-collected.service.js similarity index 78% rename from app/services/return-requirements/submit-frequency-collected.service.js rename to app/services/return-requirements/setup/submit-frequency-collected.service.js index aab01aff5a..a3c0a26961 100644 --- a/app/services/return-requirements/submit-frequency-collected.service.js +++ b/app/services/return-requirements/setup/submit-frequency-collected.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/frequency-collected` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/frequency-collected` page * @module SubmitFrequencyCollectedService */ -const FrequencyCollectedPresenter = require('../../presenters/return-requirements/frequency-collected.presenter.js') -const FrequencyCollectedValidator = require('../../validators/return-requirements/frequency-collected.validator.js') -const GeneralLib = require('../../lib/general.lib.js') -const SessionModel = require('../../models/session.model.js') +const FrequencyCollectedPresenter = require('../../../presenters/return-requirements/setup/frequency-collected.presenter.js') +const FrequencyCollectedValidator = require('../../../validators/return-requirements/setup/frequency-collected.validator.js') +const GeneralLib = require('../../../lib/general.lib.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/frequency-collected` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/frequency-collected` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-frequency-reported.service.js b/app/services/return-requirements/setup/submit-frequency-reported.service.js similarity index 78% rename from app/services/return-requirements/submit-frequency-reported.service.js rename to app/services/return-requirements/setup/submit-frequency-reported.service.js index 8fdd80b7d6..76db48684a 100644 --- a/app/services/return-requirements/submit-frequency-reported.service.js +++ b/app/services/return-requirements/setup/submit-frequency-reported.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/frequency-reported` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/frequency-reported` page * @module SubmitFrequencyReportedService */ -const FrequencyReportedPresenter = require('../../presenters/return-requirements/frequency-reported.presenter.js') -const FrequencyReportedValidator = require('../../validators/return-requirements/frequency-reported.validator.js') -const GeneralLib = require('../../lib/general.lib.js') -const SessionModel = require('../../models/session.model.js') +const FrequencyReportedPresenter = require('../../../presenters/return-requirements/setup/frequency-reported.presenter.js') +const FrequencyReportedValidator = require('../../../validators/return-requirements/setup/frequency-reported.validator.js') +const GeneralLib = require('../../../lib/general.lib.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/frequency-reported` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/frequency-reported` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-no-returns-required.service.js b/app/services/return-requirements/setup/submit-no-returns-required.service.js similarity index 74% rename from app/services/return-requirements/submit-no-returns-required.service.js rename to app/services/return-requirements/setup/submit-no-returns-required.service.js index 38d776d6d3..034d040484 100644 --- a/app/services/return-requirements/submit-no-returns-required.service.js +++ b/app/services/return-requirements/setup/submit-no-returns-required.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/no-returns-required` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/no-returns-required` page * @module StartDateService */ -const NoReturnsRequiredPresenter = require('../../presenters/return-requirements/no-returns-required.presenter.js') -const NoReturnsRequiredValidator = require('../../validators/return-requirements/no-returns-required.validator.js') -const SessionModel = require('../../models/session.model.js') -const GeneralLib = require('../../lib/general.lib.js') +const NoReturnsRequiredPresenter = require('../../../presenters/return-requirements/setup/no-returns-required.presenter.js') +const NoReturnsRequiredValidator = require('../../../validators/return-requirements/setup/no-returns-required.validator.js') +const SessionModel = require('../../../models/session.model.js') +const GeneralLib = require('../../../lib/general.lib.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/no-returns-required` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/no-returns-required` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-note.service.js b/app/services/return-requirements/setup/submit-note.service.js similarity index 84% rename from app/services/return-requirements/submit-note.service.js rename to app/services/return-requirements/setup/submit-note.service.js index 5f0b488a59..a49be1348a 100644 --- a/app/services/return-requirements/submit-note.service.js +++ b/app/services/return-requirements/setup/submit-note.service.js @@ -1,16 +1,16 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/note` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/note` page * @module SubmitNoteService */ -const NotePresenter = require('../../presenters/return-requirements/note.presenter.js') -const NoteValidator = require('../../validators/return-requirements/note.validator.js') -const SessionModel = require('../../models/session.model.js') +const NotePresenter = require('../../../presenters/return-requirements/setup/note.presenter.js') +const NoteValidator = require('../../../validators/return-requirements/setup/note.validator.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/note` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/note` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-points.service.js b/app/services/return-requirements/setup/submit-points.service.js similarity index 81% rename from app/services/return-requirements/submit-points.service.js rename to app/services/return-requirements/setup/submit-points.service.js index 0894d77c3b..0113a3b430 100644 --- a/app/services/return-requirements/submit-points.service.js +++ b/app/services/return-requirements/setup/submit-points.service.js @@ -1,18 +1,18 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/points` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/points` page * @module SubmitPointsService */ -const FetchPointsService = require('../../services/return-requirements/fetch-points.service.js') -const GeneralLib = require('../../lib/general.lib.js') -const PointsPresenter = require('../../presenters/return-requirements/points.presenter.js') -const PointsValidator = require('../../validators/return-requirements/points.validator.js') -const SessionModel = require('../../models/session.model.js') +const FetchPointsService = require('./fetch-points.service.js') +const GeneralLib = require('../../../lib/general.lib.js') +const PointsPresenter = require('../../../presenters/return-requirements/setup/points.presenter.js') +const PointsValidator = require('../../../validators/return-requirements/setup/points.validator.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/points` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/points` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-purpose.service.js b/app/services/return-requirements/setup/submit-purpose.service.js similarity index 87% rename from app/services/return-requirements/submit-purpose.service.js rename to app/services/return-requirements/setup/submit-purpose.service.js index f039c0689c..7a3bbe05aa 100644 --- a/app/services/return-requirements/submit-purpose.service.js +++ b/app/services/return-requirements/setup/submit-purpose.service.js @@ -1,18 +1,18 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/purpose` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/purpose` page * @module SubmitPurposeService */ const FetchPurposesService = require('./fetch-purposes.service.js') -const GeneralLib = require('../../lib/general.lib.js') -const PurposePresenter = require('../../presenters/return-requirements/purpose.presenter.js') -const PurposeValidation = require('../../validators/return-requirements/purpose.validator.js') -const SessionModel = require('../../models/session.model.js') +const GeneralLib = require('../../../lib/general.lib.js') +const PurposePresenter = require('../../../presenters/return-requirements/setup/purpose.presenter.js') +const PurposeValidation = require('../../../validators/return-requirements/setup/purpose.validator.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/purpose` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/purpose` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-reason.service.js b/app/services/return-requirements/setup/submit-reason.service.js similarity index 78% rename from app/services/return-requirements/submit-reason.service.js rename to app/services/return-requirements/setup/submit-reason.service.js index 9f943dd171..91880c44f5 100644 --- a/app/services/return-requirements/submit-reason.service.js +++ b/app/services/return-requirements/setup/submit-reason.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/reason` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/reason` page * @module SubmitReasonService */ -const GeneralLib = require('../../lib/general.lib.js') -const ReasonPresenter = require('../../presenters/return-requirements/reason.presenter.js') -const ReasonValidator = require('../../validators/return-requirements/reason.validator.js') -const SessionModel = require('../../models/session.model.js') +const GeneralLib = require('../../../lib/general.lib.js') +const ReasonPresenter = require('../../../presenters/return-requirements/setup/reason.presenter.js') +const ReasonValidator = require('../../../validators/return-requirements/setup/reason.validator.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/reason` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/reason` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-remove.service.js b/app/services/return-requirements/setup/submit-remove.service.js similarity index 95% rename from app/services/return-requirements/submit-remove.service.js rename to app/services/return-requirements/setup/submit-remove.service.js index f9e124772e..62ebccaf57 100644 --- a/app/services/return-requirements/submit-remove.service.js +++ b/app/services/return-requirements/setup/submit-remove.service.js @@ -5,7 +5,7 @@ * @module SubmitRemoveService */ -const SessionModel = require('../../models/session.model.js') +const SessionModel = require('../../../models/session.model.js') /** * Manages deleting the selected requirement in the session when remove is confirmed diff --git a/app/services/return-requirements/submit-returns-cycle.service.js b/app/services/return-requirements/setup/submit-returns-cycle.service.js similarity index 79% rename from app/services/return-requirements/submit-returns-cycle.service.js rename to app/services/return-requirements/setup/submit-returns-cycle.service.js index 087fb7bdfd..6ca8e7a861 100644 --- a/app/services/return-requirements/submit-returns-cycle.service.js +++ b/app/services/return-requirements/setup/submit-returns-cycle.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/returns-cycle` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/returns-cycle` page * @module SubmitReturnsCycleService */ -const GeneralLib = require('../../lib/general.lib.js') -const ReturnsCyclePresenter = require('../../presenters/return-requirements/returns-cycle.presenter.js') -const ReturnsCycleValidator = require('../../validators/return-requirements/returns-cycle.validator.js') -const SessionModel = require('../../models/session.model.js') +const GeneralLib = require('../../../lib/general.lib.js') +const ReturnsCyclePresenter = require('../../../presenters/return-requirements/setup/returns-cycle.presenter.js') +const ReturnsCycleValidator = require('../../../validators/return-requirements/setup/returns-cycle.validator.js') +const SessionModel = require('../../../models/session.model.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/returns-cycle` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/returns-cycle` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-site-description.service.js b/app/services/return-requirements/setup/submit-site-description.service.js similarity index 81% rename from app/services/return-requirements/submit-site-description.service.js rename to app/services/return-requirements/setup/submit-site-description.service.js index 47f1e84306..e00c504e1e 100644 --- a/app/services/return-requirements/submit-site-description.service.js +++ b/app/services/return-requirements/setup/submit-site-description.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/site-description` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/site-description` page * @module SubmitSiteDescriptionService */ -const GeneralLib = require('../../lib/general.lib.js') -const SessionModel = require('../../models/session.model.js') -const SiteDescriptionPresenter = require('../../presenters/return-requirements/site-description.presenter.js') -const SiteDescriptionValidator = require('../../validators/return-requirements/site-description.validator.js') +const GeneralLib = require('../../../lib/general.lib.js') +const SessionModel = require('../../../models/session.model.js') +const SiteDescriptionPresenter = require('../../../presenters/return-requirements/setup/site-description.presenter.js') +const SiteDescriptionValidator = require('../../../validators/return-requirements/setup/site-description.validator.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/site-description` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/site-description` page * * It first retrieves the session instance for the returns requirements journey in progress. * diff --git a/app/services/return-requirements/submit-start-date.service.js b/app/services/return-requirements/setup/submit-start-date.service.js similarity index 85% rename from app/services/return-requirements/submit-start-date.service.js rename to app/services/return-requirements/setup/submit-start-date.service.js index 9cc2d87ece..a7005269d8 100644 --- a/app/services/return-requirements/submit-start-date.service.js +++ b/app/services/return-requirements/setup/submit-start-date.service.js @@ -1,17 +1,17 @@ 'use strict' /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/start-date` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/start-date` page * @module StartDateService */ -const GeneralLib = require('../../lib/general.lib.js') -const SessionModel = require('../../models/session.model.js') -const StartDatePresenter = require('../../presenters/return-requirements/start-date.presenter.js') -const StartDateValidator = require('../../validators/return-requirements/start-date.validator.js') +const GeneralLib = require('../../../lib/general.lib.js') +const SessionModel = require('../../../models/session.model.js') +const StartDatePresenter = require('../../../presenters/return-requirements/setup/start-date.presenter.js') +const StartDateValidator = require('../../../validators/return-requirements/setup/start-date.validator.js') /** - * Orchestrates validating the data for `/return-requirements/{sessionId}/start-date` page + * Orchestrates validating the data for `/return-requirements/setup/{sessionId}/start-date` page * * It first retrieves the session instance for the returns requirements journey in progress. The session has details * about the licence that are needed to validate that the chosen date is valid. diff --git a/app/validators/return-requirements/abstraction-period.validator.js b/app/validators/return-requirements/setup/abstraction-period.validator.js similarity index 97% rename from app/validators/return-requirements/abstraction-period.validator.js rename to app/validators/return-requirements/setup/abstraction-period.validator.js index 7d948748b4..d4a797a6c7 100644 --- a/app/validators/return-requirements/abstraction-period.validator.js +++ b/app/validators/return-requirements/setup/abstraction-period.validator.js @@ -7,7 +7,7 @@ const Joi = require('joi').extend(require('@joi/date')) -const { leftPadZeroes } = require('../../presenters/base.presenter.js') +const { leftPadZeroes } = require('../../../presenters/base.presenter.js') /** * Validates data submitted for the `/return-requirements/{sessionId}/abstraction-period` page diff --git a/app/validators/return-requirements/additional-submission-options.validator.js b/app/validators/return-requirements/setup/additional-submission-options.validator.js similarity index 100% rename from app/validators/return-requirements/additional-submission-options.validator.js rename to app/validators/return-requirements/setup/additional-submission-options.validator.js diff --git a/app/validators/return-requirements/agreements-exceptions.validator.js b/app/validators/return-requirements/setup/agreements-exceptions.validator.js similarity index 100% rename from app/validators/return-requirements/agreements-exceptions.validator.js rename to app/validators/return-requirements/setup/agreements-exceptions.validator.js diff --git a/app/validators/return-requirements/existing.validator.js b/app/validators/return-requirements/setup/existing.validator.js similarity index 100% rename from app/validators/return-requirements/existing.validator.js rename to app/validators/return-requirements/setup/existing.validator.js diff --git a/app/validators/return-requirements/frequency-collected.validator.js b/app/validators/return-requirements/setup/frequency-collected.validator.js similarity index 100% rename from app/validators/return-requirements/frequency-collected.validator.js rename to app/validators/return-requirements/setup/frequency-collected.validator.js diff --git a/app/validators/return-requirements/frequency-reported.validator.js b/app/validators/return-requirements/setup/frequency-reported.validator.js similarity index 100% rename from app/validators/return-requirements/frequency-reported.validator.js rename to app/validators/return-requirements/setup/frequency-reported.validator.js diff --git a/app/validators/return-requirements/method.validator.js b/app/validators/return-requirements/setup/method.validator.js similarity index 100% rename from app/validators/return-requirements/method.validator.js rename to app/validators/return-requirements/setup/method.validator.js diff --git a/app/validators/return-requirements/no-returns-required.validator.js b/app/validators/return-requirements/setup/no-returns-required.validator.js similarity index 100% rename from app/validators/return-requirements/no-returns-required.validator.js rename to app/validators/return-requirements/setup/no-returns-required.validator.js diff --git a/app/validators/return-requirements/note.validator.js b/app/validators/return-requirements/setup/note.validator.js similarity index 100% rename from app/validators/return-requirements/note.validator.js rename to app/validators/return-requirements/setup/note.validator.js diff --git a/app/validators/return-requirements/points.validator.js b/app/validators/return-requirements/setup/points.validator.js similarity index 100% rename from app/validators/return-requirements/points.validator.js rename to app/validators/return-requirements/setup/points.validator.js diff --git a/app/validators/return-requirements/purpose.validator.js b/app/validators/return-requirements/setup/purpose.validator.js similarity index 100% rename from app/validators/return-requirements/purpose.validator.js rename to app/validators/return-requirements/setup/purpose.validator.js diff --git a/app/validators/return-requirements/reason.validator.js b/app/validators/return-requirements/setup/reason.validator.js similarity index 92% rename from app/validators/return-requirements/reason.validator.js rename to app/validators/return-requirements/setup/reason.validator.js index 2898567374..212303d146 100644 --- a/app/validators/return-requirements/reason.validator.js +++ b/app/validators/return-requirements/setup/reason.validator.js @@ -7,7 +7,7 @@ const Joi = require('joi') -const { returnRequirementReasons } = require('../../lib/static-lookups.lib.js') +const { returnRequirementReasons } = require('../../../lib/static-lookups.lib.js') const errorMessage = 'Select the reason for the requirements for returns' diff --git a/app/validators/return-requirements/returns-cycle.validator.js b/app/validators/return-requirements/setup/returns-cycle.validator.js similarity index 100% rename from app/validators/return-requirements/returns-cycle.validator.js rename to app/validators/return-requirements/setup/returns-cycle.validator.js diff --git a/app/validators/return-requirements/site-description.validator.js b/app/validators/return-requirements/setup/site-description.validator.js similarity index 100% rename from app/validators/return-requirements/site-description.validator.js rename to app/validators/return-requirements/setup/site-description.validator.js diff --git a/app/validators/return-requirements/start-date.validator.js b/app/validators/return-requirements/setup/start-date.validator.js similarity index 97% rename from app/validators/return-requirements/start-date.validator.js rename to app/validators/return-requirements/setup/start-date.validator.js index 67663ba951..26aef92cc9 100644 --- a/app/validators/return-requirements/start-date.validator.js +++ b/app/validators/return-requirements/setup/start-date.validator.js @@ -7,7 +7,7 @@ const Joi = require('joi').extend(require('@joi/date')) -const { leftPadZeroes } = require('../../presenters/base.presenter.js') +const { leftPadZeroes } = require('../../../presenters/base.presenter.js') /** * Validates data submitted for the `/return-requirements/{sessionId}/start-date` page diff --git a/app/views/return-requirements/abstraction-period.njk b/app/views/return-requirements/setup/abstraction-period.njk similarity index 100% rename from app/views/return-requirements/abstraction-period.njk rename to app/views/return-requirements/setup/abstraction-period.njk diff --git a/app/views/return-requirements/additional-submission-options.njk b/app/views/return-requirements/setup/additional-submission-options.njk similarity index 100% rename from app/views/return-requirements/additional-submission-options.njk rename to app/views/return-requirements/setup/additional-submission-options.njk diff --git a/app/views/return-requirements/agreements-exceptions.njk b/app/views/return-requirements/setup/agreements-exceptions.njk similarity index 100% rename from app/views/return-requirements/agreements-exceptions.njk rename to app/views/return-requirements/setup/agreements-exceptions.njk diff --git a/app/views/return-requirements/approved.njk b/app/views/return-requirements/setup/approved.njk similarity index 100% rename from app/views/return-requirements/approved.njk rename to app/views/return-requirements/setup/approved.njk diff --git a/app/views/return-requirements/cancel.njk b/app/views/return-requirements/setup/cancel.njk similarity index 100% rename from app/views/return-requirements/cancel.njk rename to app/views/return-requirements/setup/cancel.njk diff --git a/app/views/return-requirements/check.njk b/app/views/return-requirements/setup/check.njk similarity index 96% rename from app/views/return-requirements/check.njk rename to app/views/return-requirements/setup/check.njk index 511cef44e3..401345ce51 100644 --- a/app/views/return-requirements/check.njk +++ b/app/views/return-requirements/setup/check.njk @@ -44,7 +44,7 @@ items: [ { html: '' + 'Change' + '', - href: "/system/return-requirements/" + sessionId + "/start-date", + href: "/system/return-requirements/setup/" + sessionId + "/start-date", visuallyHiddenText: "the start date for the return requirement" } ] @@ -97,7 +97,7 @@

Requirements for returns

- {# Bookmarks - only displays when there us more than 1 return requirement #} + {# Bookmarks - only displays when there is more than 1 return requirement #} {% if requirements.length > 1 %}
    @@ -110,7 +110,7 @@ {% endif %} {# Add another requirement button #} -
    + {{ govukButton({ @@ -309,7 +309,7 @@ classes: "govuk-button--secondary" , attributes: { 'data-test': 'remove-' + rowIndex }, preventDoubleClick: true, - href: "/system/return-requirements/" + sessionId + "/remove/" + requirement.index + href: "/system/return-requirements/setup/" + sessionId + "/remove/" + requirement.index }) if requirements.length >= 2 } } @@ -374,7 +374,7 @@ text: "Cancel return requirements", classes: "govuk-button--secondary", preventDoubleClick: true, - href: "/system/return-requirements/" + sessionId + "/cancel" + href: "/system/return-requirements/setup/" + sessionId + "/cancel" }) }}
diff --git a/app/views/return-requirements/existing.njk b/app/views/return-requirements/setup/existing.njk similarity index 100% rename from app/views/return-requirements/existing.njk rename to app/views/return-requirements/setup/existing.njk diff --git a/app/views/return-requirements/frequency-collected.njk b/app/views/return-requirements/setup/frequency-collected.njk similarity index 100% rename from app/views/return-requirements/frequency-collected.njk rename to app/views/return-requirements/setup/frequency-collected.njk diff --git a/app/views/return-requirements/frequency-reported.njk b/app/views/return-requirements/setup/frequency-reported.njk similarity index 100% rename from app/views/return-requirements/frequency-reported.njk rename to app/views/return-requirements/setup/frequency-reported.njk diff --git a/app/views/return-requirements/method.njk b/app/views/return-requirements/setup/method.njk similarity index 100% rename from app/views/return-requirements/method.njk rename to app/views/return-requirements/setup/method.njk diff --git a/app/views/return-requirements/no-returns-required.njk b/app/views/return-requirements/setup/no-returns-required.njk similarity index 100% rename from app/views/return-requirements/no-returns-required.njk rename to app/views/return-requirements/setup/no-returns-required.njk diff --git a/app/views/return-requirements/note.njk b/app/views/return-requirements/setup/note.njk similarity index 100% rename from app/views/return-requirements/note.njk rename to app/views/return-requirements/setup/note.njk diff --git a/app/views/return-requirements/points.njk b/app/views/return-requirements/setup/points.njk similarity index 100% rename from app/views/return-requirements/points.njk rename to app/views/return-requirements/setup/points.njk diff --git a/app/views/return-requirements/purpose.njk b/app/views/return-requirements/setup/purpose.njk similarity index 100% rename from app/views/return-requirements/purpose.njk rename to app/views/return-requirements/setup/purpose.njk diff --git a/app/views/return-requirements/reason.njk b/app/views/return-requirements/setup/reason.njk similarity index 100% rename from app/views/return-requirements/reason.njk rename to app/views/return-requirements/setup/reason.njk diff --git a/app/views/return-requirements/remove.njk b/app/views/return-requirements/setup/remove.njk similarity index 100% rename from app/views/return-requirements/remove.njk rename to app/views/return-requirements/setup/remove.njk diff --git a/app/views/return-requirements/returns-cycle.njk b/app/views/return-requirements/setup/returns-cycle.njk similarity index 100% rename from app/views/return-requirements/returns-cycle.njk rename to app/views/return-requirements/setup/returns-cycle.njk diff --git a/app/views/return-requirements/site-description.njk b/app/views/return-requirements/setup/site-description.njk similarity index 100% rename from app/views/return-requirements/site-description.njk rename to app/views/return-requirements/setup/site-description.njk diff --git a/app/views/return-requirements/start-date.njk b/app/views/return-requirements/setup/start-date.njk similarity index 100% rename from app/views/return-requirements/start-date.njk rename to app/views/return-requirements/setup/start-date.njk diff --git a/test/controllers/licences.controller.test.js b/test/controllers/licences.controller.test.js index 92acf3c1e1..3803892f1a 100644 --- a/test/controllers/licences.controller.test.js +++ b/test/controllers/licences.controller.test.js @@ -13,7 +13,7 @@ const Boom = require('@hapi/boom') const { postRequestOptions } = require('../support/general.js') // Things we need to stub -const InitiateSessionService = require('../../app/services/return-requirements/initiate-session.service.js') +const InitiateSessionService = require('../../app/services/return-requirements/setup/initiate-session.service.js') const LicenceSupplementaryProcessBillingFlagService = require('../../app/services/licences/supplementary/process-billing-flag.service.js') const MarkedForSupplementaryBillingService = require('../../app/services/licences/supplementary/marked-for-supplementary-billing.service.js') const MarkForSupplementaryBillingService = require('../../app/services/licences/supplementary/mark-for-supplementary-billing.service.js') @@ -214,7 +214,7 @@ describe('Licences controller', () => { const response = await server.inject(options) expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal(`/system/return-requirements/${session.id}/start-date`) + expect(response.headers.location).to.equal(`/system/return-requirements/setup/${session.id}/start-date`) }) }) @@ -272,7 +272,7 @@ describe('Licences controller', () => { const response = await server.inject(options) expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal(`/system/return-requirements/${session.id}/start-date`) + expect(response.headers.location).to.equal(`/system/return-requirements/setup/${session.id}/start-date`) }) }) diff --git a/test/controllers/return-requirements-setup.controller.test.js b/test/controllers/return-requirements-setup.controller.test.js new file mode 100644 index 0000000000..96bff6e054 --- /dev/null +++ b/test/controllers/return-requirements-setup.controller.test.js @@ -0,0 +1,1038 @@ +'use strict' + +// Test framework dependencies +const Lab = require('@hapi/lab') +const Code = require('@hapi/code') +const Sinon = require('sinon') + +const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() +const { expect } = Code + +// Test helpers +const { postRequestOptions } = require('../support/general.js') + +// Things we need to stub +const AbstractionPeriodService = require('../../app/services/return-requirements/setup/abstraction-period.service.js') +const AdditionalSubmissionOptionsService = require('../../app/services/return-requirements/setup/additional-submission-options.service.js') +const AgreementsExceptionService = require('../../app/services/return-requirements/setup/agreements-exceptions.service.js') +const CancelService = require('../../app/services/return-requirements/setup/cancel.service.js') +const CheckService = require('../../app/services/return-requirements/setup/check/check.service.js') +const DeleteNoteService = require('../../app/services/return-requirements/setup/delete-note.service.js') +const ExistingService = require('../../app/services/return-requirements/setup/existing.service.js') +const FrequencyCollectedService = require('../../app/services/return-requirements/setup/frequency-collected.service.js') +const FrequencyReportedService = require('../../app/services/return-requirements/setup/frequency-reported.service.js') +const MethodService = require('../../app/services/return-requirements/setup/method/method.service.js') +const NoReturnsRequiredService = require('../../app/services/return-requirements/setup/no-returns-required.service.js') +const NoteService = require('../../app/services/return-requirements/setup/note.service.js') +const PointsService = require('../../app/services/return-requirements/setup/points.service.js') +const RemoveService = require('../../app/services/return-requirements/setup/remove.service.js') +const ReturnCycleService = require('../../app/services/return-requirements/setup/returns-cycle.service.js') +const SelectPurposeService = require('../../app/services/return-requirements/setup/purpose.service.js') +const SelectReasonService = require('../../app/services/return-requirements/setup/reason.service.js') +const SiteDescriptionService = require('../../app/services/return-requirements/setup/site-description.service.js') +const StartDateService = require('../../app/services/return-requirements/setup/start-date.service.js') +const SubmitAbstractionPeriod = require('../../app/services/return-requirements/setup/submit-abstraction-period.service.js') +const SubmitAgreementsExceptions = require('../../app/services/return-requirements/setup/submit-agreements-exceptions.service.js') +const SubmitExistingService = require('../../app/services/return-requirements/setup/submit-existing.service.js') +const SubmitFrequencyCollectedService = require('../../app/services/return-requirements/setup/submit-frequency-collected.service.js') +const SubmitFrequencyReportedService = require('../../app/services/return-requirements/setup/submit-frequency-reported.service.js') +const SubmitMethodService = require('../../app/services/return-requirements/setup/method/submit-method.service.js') +const SubmitNoReturnsRequiredService = require('../../app/services/return-requirements/setup/submit-no-returns-required.service.js') +const SubmitPointsService = require('../../app/services/return-requirements/setup/submit-points.service.js') +const SubmitPurposeService = require('../../app/services/return-requirements/setup/submit-purpose.service.js') +const SubmitReasonService = require('../../app/services/return-requirements/setup/submit-reason.service.js') +const SubmitReturnsCycleService = require('../../app/services/return-requirements/setup/submit-returns-cycle.service.js') +const SubmitSiteDescriptionService = require('../../app/services/return-requirements/setup/submit-site-description.service.js') +const SubmitStartDateService = require('../../app/services/return-requirements/setup/submit-start-date.service.js') + +// For running our service +const { init } = require('../../app/server.js') + +const sessionId = '64924759-8142-4a08-9d1e-1e902cd9d316' +const requirementIndex = 0 + +describe('Return requirements controller', () => { + let server + + beforeEach(async () => { + // Create server before each test + server = await init() + + // We silence any calls to server.logger.error made in the plugin to try and keep the test output as clean as + // possible + Sinon.stub(server.logger, 'error') + + // We silence sending a notification to our Errbit instance using Airbrake + Sinon.stub(server.app.airbrake, 'notify').resolvesThis() + }) + + afterEach(() => { + Sinon.restore() + }) + + describe('/return-requirements/setup/{sessionId}/abstraction-period', () => { + const path = 'abstraction-period' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(AbstractionPeriodService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', + pageTitle: 'Enter the abstraction period for the requirements for returns' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Enter the abstraction period for the requirements for returns') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitAbstractionPeriod, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the page has not been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitAbstractionPeriod, 'go').resolves({}) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/returns-cycle/{requirementIndex}', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/returns-cycle/0') + }) + }) + + describe('and the page has been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitAbstractionPeriod, 'go').resolves({ checkPageVisited: true }) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/check', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/additional-submission-options', () => { + const path = 'additional-submission-options' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(AdditionalSubmissionOptionsService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', + pageTitle: 'Select any additional submission options for the return requirements', + additionalSubmissionOptions: [] + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Select any additional submission options for the return requirements') + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/note', () => { + const path = 'note' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(NoteService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Add a note' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Add a note') + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/agreements-exceptions', () => { + const path = 'agreements-exceptions' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(AgreementsExceptionService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', + pageTitle: 'Select agreements and exceptions for the return requirement' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Select agreements and exceptions for the return requirement') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitAgreementsExceptions, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the page has not been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitAgreementsExceptions, 'go').resolves({}) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/check', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{licenceId}/approved', () => { + const path = 'approved' + + describe('GET', () => { + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Requirements for returns approved') + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/cancel', () => { + const path = 'cancel' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(CancelService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', + pageTitle: 'You are about to cancel these requirements for returns' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('You are about to cancel these requirements for returns') + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/check', () => { + const path = 'check' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(CheckService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Check the return requirements for Acme Corp.' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Check the return requirements for') + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/delete-note', () => { + const path = 'delete-note' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(DeleteNoteService, 'go').resolves({ + title: 'Removed', + text: 'Note removed' + }) + }) + + it('redirects on success', async () => { + const result = await server.inject(_getOptions(path)) + + expect(result.statusCode).to.equal(302) + expect(result.headers.location).to.equal(`/system/return-requirements/setup/${sessionId}/check`) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/existing', () => { + const path = 'existing' + + describe('GET', () => { + describe('when the request succeeds', () => { + beforeEach(async () => { + Sinon.stub(ExistingService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Use previous requirements for returns' + }) + }) + + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Use previous requirements for returns') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitExistingService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the validation succeeds', () => { + beforeEach(async () => { + Sinon.stub(SubmitExistingService, 'go').resolves({}) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/check', async () => { + const response = await server.inject(_postOptions(path)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/frequency-collected', () => { + const path = 'frequency-collected' + + describe('GET ', () => { + beforeEach(async () => { + Sinon.stub(FrequencyCollectedService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select how often readings or volumes are collected' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Select how often readings or volumes are collected') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitFrequencyCollectedService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the page has not been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitFrequencyCollectedService, 'go').resolves({}) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/frequency-reported/{requirementIndex}', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/frequency-reported/0') + }) + }) + + describe('and the page has been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitFrequencyCollectedService, 'go').resolves({ checkPageVisited: true }) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/check', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/frequency-reported', () => { + const path = 'frequency-reported' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(FrequencyReportedService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select how often readings or volumes are reported' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Select how often readings or volumes are reported') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitFrequencyReportedService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the page has not been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitFrequencyReportedService, 'go').resolves({}) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/agreements-exceptions/{requirementIndex}', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/agreements-exceptions/0') + }) + }) + + describe('and the page has been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitFrequencyReportedService, 'go').resolves({ checkPageVisited: true }) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/check', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/method', () => { + const path = 'method' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(MethodService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'How do you want to set up the requirements for returns?' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('How do you want to set up the requirements for returns?') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitMethodService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the validation passes', () => { + beforeEach(async () => { + Sinon.stub(SubmitMethodService, 'go').resolves({ redirect: 'page-data-redirect' }) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/{pageData.redirect}', async () => { + const response = await server.inject(_postOptions(path)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/page-data-redirect') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/no-returns-required', () => { + const path = 'no-returns-required' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(NoReturnsRequiredService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Why are no returns required?' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Why are no returns required?') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation passes', () => { + beforeEach(async () => { + Sinon.stub(SubmitNoReturnsRequiredService, 'go').resolves({ }) + }) + + it('redirects to /system/return-requirements/{sessionId}/check', async () => { + const response = await server.inject(_postOptions(path)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitNoReturnsRequiredService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/points', () => { + const path = 'points' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(PointsService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select the points for the requirements for returns' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Select the points for the requirements for returns') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitPointsService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the page has not been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitPointsService, 'go').resolves({}) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/abstraction-period/{requirementIndex}', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/abstraction-period/0') + }) + }) + + describe('and the page has been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitPointsService, 'go').resolves({ checkPageVisited: true }) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/check', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/purpose', () => { + const path = 'purpose' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(SelectPurposeService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select the purpose for the requirement for returns' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Select the purpose for the requirement for returns') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitPurposeService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the page has not been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitPurposeService, 'go').resolves({}) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/points/{requirementIndex}', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/points/0') + }) + }) + + describe('and the page has been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitPurposeService, 'go').resolves({ checkPageVisited: true }) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/check', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/reason', () => { + const path = 'reason' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(SelectReasonService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select the reason for the requirements for returns' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Select the reason for the requirements for returns') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitReasonService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the page has not been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitReasonService, 'go').resolves({}) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/method', async () => { + const response = await server.inject(_postOptions(path)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/method') + }) + }) + + describe('and the page has been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitReasonService, 'go').resolves({ checkPageVisited: true }) + }) + + it('redirects to /system/return-requirements/{sessionId}/check', async () => { + const response = await server.inject(_postOptions(path)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/remove', () => { + const path = 'remove' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(RemoveService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'You are about to remove these requirements for returns' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('You are about to remove these requirements for returns') + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/returns-cycle', () => { + const path = 'returns-cycle' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(ReturnCycleService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select the returns cycle for the return requirement' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Select the returns cycle for the return requirement') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitReturnsCycleService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the page has not been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitReturnsCycleService, 'go').resolves({}) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/site-description/{requirementIndex}', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/site-description/0') + }) + }) + + describe('and the page has been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitReturnsCycleService, 'go').resolves({ checkPageVisited: true }) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/check', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/site-description', () => { + const path = 'site-description' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(SiteDescriptionService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', + pageTitle: 'Enter a site description for the requirements for returns' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Enter a site description for the requirements for returns') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitSiteDescriptionService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the page has not been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitSiteDescriptionService, 'go').resolves({}) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/frequency-collected/{requirementIndex}', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/frequency-collected/0') + }) + }) + + describe('and the page has been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitSiteDescriptionService, 'go').resolves({ checkPageVisited: true }) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/check', async () => { + const response = await server.inject(_postOptions(path, requirementIndex)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + }) + }) + }) + + describe('/return-requirements/setup/{sessionId}/start-date', () => { + const path = 'start-date' + + describe('GET', () => { + beforeEach(async () => { + Sinon.stub(StartDateService, 'go').resolves({ + id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select the start date for the requirements for returns' + }) + }) + + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_getOptions(path)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Select the start date for the requirements for returns') + }) + }) + }) + + describe('POST', () => { + describe('when the request succeeds', () => { + describe('and the validation fails', () => { + beforeEach(async () => { + Sinon.stub(SubmitStartDateService, 'go').resolves({ error: {} }) + }) + + it('returns the page successfully with the error summary banner', async () => { + const response = await server.inject(postRequestOptions(`/return-requirements/setup/${sessionId}/${path}`)) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('There is a problem') + }) + }) + + describe('and the journey is returns-required', () => { + beforeEach(async () => { + Sinon.stub(SubmitStartDateService, 'go').resolves({ journey: 'returns-required' }) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/reason', async () => { + const response = await server.inject(postRequestOptions(`/return-requirements/setup/${sessionId}/${path}`)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/reason') + }) + }) + + describe('and the page has not been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitStartDateService, 'go').resolves({}) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/no-returns-required', async () => { + const response = await server.inject(postRequestOptions(`/return-requirements/setup/${sessionId}/${path}`)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/no-returns-required') + }) + }) + + describe('and the page has been visited previously ', () => { + beforeEach(async () => { + Sinon.stub(SubmitStartDateService, 'go').resolves({ checkPageVisited: true }) + }) + + it('redirects to /system/return-requirements/setup/{sessionId}/check', async () => { + const response = await server.inject(postRequestOptions(`/return-requirements/setup/${sessionId}/${path}`)) + + expect(response.statusCode).to.equal(302) + expect(response.headers.location).to.equal('/system/return-requirements/setup/' + sessionId + '/check') + }) + }) + }) + }) + }) +}) + +function _getOptions (path, index = -1) { + let url = `/return-requirements/setup/${sessionId}/${path}` + + if (index > -1) { + url = `${url}/${index}` + } + + return { + method: 'GET', + url, + auth: { + strategy: 'session', + credentials: { scope: ['billing'] } + } + } +} + +function _postOptions (path, index = -1, payload) { + let url = `/return-requirements/setup/${sessionId}/${path}` + + if (index > -1) { + url = `${url}/${index}` + } + + return postRequestOptions(url, payload) +} diff --git a/test/controllers/return-requirements.controller.test.js b/test/controllers/return-requirements.controller.test.js index f77632f42e..df8c0b3ffa 100644 --- a/test/controllers/return-requirements.controller.test.js +++ b/test/controllers/return-requirements.controller.test.js @@ -8,50 +8,12 @@ const Sinon = require('sinon') const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code -// Test helpers -const { postRequestOptions } = require('../support/general.js') - // Things we need to stub -const AbstractionPeriodService = require('../../app/services/return-requirements/abstraction-period.service.js') -const AdditionalSubmissionOptionsService = require('../../app/services/return-requirements/additional-submission-options.service.js') -const AgreementsExceptionService = require('../../app/services/return-requirements/agreements-exceptions.service.js') -const CancelService = require('../../app/services/return-requirements/cancel.service.js') -const CheckService = require('../../app/services/return-requirements/check.service.js') -const DeleteNoteService = require('../../app/services/return-requirements/delete-note.service.js') -const ExistingService = require('../../app/services/return-requirements/existing.service.js') -const FrequencyCollectedService = require('../../app/services/return-requirements/frequency-collected.service.js') -const FrequencyReportedService = require('../../app/services/return-requirements/frequency-reported.service.js') -const MethodService = require('../../app/services/return-requirements/method/method.service.js') -const NoReturnsRequiredService = require('../../app/services/return-requirements/no-returns-required.service.js') -const NoteService = require('../../app/services/return-requirements/note.service.js') -const PointsService = require('../../app/services/return-requirements/points.service.js') -const RemoveService = require('../../app/services/return-requirements/remove.service.js') -const ReturnCycleService = require('../../app/services/return-requirements/returns-cycle.service.js') -const SelectPurposeService = require('../../app/services/return-requirements/purpose.service.js') -const SelectReasonService = require('../../app/services/return-requirements/reason.service.js') -const SiteDescriptionService = require('../../app/services/return-requirements/site-description.service.js') -const StartDateService = require('../../app/services/return-requirements/start-date.service.js') -const SubmitAbstractionPeriod = require('../../app/services/return-requirements/submit-abstraction-period.service.js') -const SubmitAgreementsExceptions = require('../../app/services/return-requirements/submit-agreements-exceptions.service.js') -const SubmitExistingService = require('../../app/services/return-requirements/submit-existing.service.js') -const SubmitFrequencyCollectedService = require('../../app/services/return-requirements/submit-frequency-collected.service.js') -const SubmitFrequencyReportedService = require('../../app/services/return-requirements/submit-frequency-reported.service.js') -const SubmitMethodService = require('../../app/services/return-requirements/method/submit-method.service.js') -const SubmitNoReturnsRequiredService = require('../../app/services/return-requirements/submit-no-returns-required.service.js') -const SubmitPointsService = require('../../app/services/return-requirements/submit-points.service.js') -const SubmitPurposeService = require('../../app/services/return-requirements/submit-purpose.service.js') -const SubmitReasonService = require('../../app/services/return-requirements/submit-reason.service.js') -const SubmitReturnsCycleService = require('../../app/services/return-requirements/submit-returns-cycle.service.js') -const SubmitSiteDescriptionService = require('../../app/services/return-requirements/submit-site-description.service.js') -const SubmitStartDateService = require('../../app/services/return-requirements/submit-start-date.service.js') const ViewService = require('../../app/services/return-requirements/view.service.js') // For running our service const { init } = require('../../app/server.js') -const sessionId = '64924759-8142-4a08-9d1e-1e902cd9d316' -const requirementIndex = 0 - describe('Return requirements controller', () => { let server @@ -71,998 +33,31 @@ describe('Return requirements controller', () => { Sinon.restore() }) - describe('/return-requirements/{sessionId}/abstraction-period', () => { - const path = 'abstraction-period' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(AbstractionPeriodService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', - pageTitle: 'Enter the abstraction period for the requirements for returns' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Enter the abstraction period for the requirements for returns') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitAbstractionPeriod, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the page has not been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitAbstractionPeriod, 'go').resolves({}) - }) - - it('redirects to /system/return-requirements/{sessionId}/returns-cycle/{requirementIndex}', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/returns-cycle/0') - }) - }) - - describe('and the page has been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitAbstractionPeriod, 'go').resolves({ checkPageVisited: true }) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') - }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/additional-submission-options', () => { - const path = 'additional-submission-options' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(AdditionalSubmissionOptionsService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', - pageTitle: 'Select any additional submission options for the return requirements', - additionalSubmissionOptions: [] - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Select any additional submission options for the return requirements') - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/note', () => { - const path = 'note' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(NoteService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Add a note' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Add a note') - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/agreements-exceptions', () => { - const path = 'agreements-exceptions' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(AgreementsExceptionService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', - pageTitle: 'Select agreements and exceptions for the return requirement' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Select agreements and exceptions for the return requirement') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitAgreementsExceptions, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the page has not been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitAgreementsExceptions, 'go').resolves({}) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') - }) - }) - }) - }) - }) - - describe('/return-requirements/{licenceId}/approved', () => { - const path = 'approved' - - describe('GET', () => { - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Requirements for returns approved') - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/cancel', () => { - const path = 'cancel' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(CancelService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', - pageTitle: 'You are about to cancel these requirements for returns' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('You are about to cancel these requirements for returns') - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/check', () => { - const path = 'check' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(CheckService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Check the return requirements for Acme Corp.' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Check the return requirements for') - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/delete-note', () => { - const path = 'delete-note' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(DeleteNoteService, 'go').resolves({ - title: 'Removed', - text: 'Note removed' - }) - }) - - it('redirects on success', async () => { - const result = await server.inject(_getOptions(path)) - - expect(result.statusCode).to.equal(302) - expect(result.headers.location).to.equal(`/system/return-requirements/${sessionId}/check`) - }) - }) - }) - - describe('/return-requirements/{sessionId}/existing', () => { - const path = 'existing' + describe('/return-requirements/{id}', () => { + const id = '2a075724-b66c-410e-9fc8-b964077204f2' describe('GET', () => { - describe('when the request succeeds', () => { - beforeEach(async () => { - Sinon.stub(ExistingService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Use previous requirements for returns' - }) - }) - - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Use previous requirements for returns') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitExistingService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the validation succeeds', () => { - beforeEach(async () => { - Sinon.stub(SubmitExistingService, 'go').resolves({}) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(_postOptions(path)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') - }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/frequency-collected', () => { - const path = 'frequency-collected' - - describe('GET ', () => { beforeEach(async () => { - Sinon.stub(FrequencyCollectedService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select how often readings or volumes are collected' + Sinon.stub(ViewService, 'go').resolves({ + pageTitle: 'Requirements for returns valid from' }) }) describe('when the request succeeds', () => { it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Select how often readings or volumes are collected') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitFrequencyCollectedService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the page has not been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitFrequencyCollectedService, 'go').resolves({}) - }) - - it('redirects to /system/return-requirements/{sessionId}/frequency-reported/{requirementIndex}', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/frequency-reported/0') - }) - }) - - describe('and the page has been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitFrequencyCollectedService, 'go').resolves({ checkPageVisited: true }) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') + const response = await server.inject({ + method: 'GET', + url: `/return-requirements/${id}/`, + auth: { + strategy: 'session', + credentials: { scope: ['billing'] } + } }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/frequency-reported', () => { - const path = 'frequency-reported' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(FrequencyReportedService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select how often readings or volumes are reported' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path, requirementIndex)) expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Select how often readings or volumes are reported') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitFrequencyReportedService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the page has not been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitFrequencyReportedService, 'go').resolves({}) - }) - - it('redirects to /system/return-requirements/{sessionId}/agreements-exceptions/{requirementIndex}', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/agreements-exceptions/0') - }) - }) - - describe('and the page has been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitFrequencyReportedService, 'go').resolves({ checkPageVisited: true }) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') - }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/method', () => { - const path = 'method' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(MethodService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'How do you want to set up the requirements for returns?' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('How do you want to set up the requirements for returns?') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitMethodService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the validation passes', () => { - beforeEach(async () => { - Sinon.stub(SubmitMethodService, 'go').resolves({ redirect: 'page-data-redirect' }) - }) - - it('redirects to /system/return-requirements/{sessionId}/{pageData.redirect}', async () => { - const response = await server.inject(_postOptions(path)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/page-data-redirect') - }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/no-returns-required', () => { - const path = 'no-returns-required' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(NoReturnsRequiredService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Why are no returns required?' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Why are no returns required?') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation passes', () => { - beforeEach(async () => { - Sinon.stub(SubmitNoReturnsRequiredService, 'go').resolves({ }) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(_postOptions(path)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') - }) - }) - - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitNoReturnsRequiredService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/points', () => { - const path = 'points' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(PointsService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select the points for the requirements for returns' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Select the points for the requirements for returns') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitPointsService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the page has not been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitPointsService, 'go').resolves({}) - }) - - it('redirects to /system/return-requirements/{sessionId}/abstraction-period/{requirementIndex}', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/abstraction-period/0') - }) - }) - - describe('and the page has been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitPointsService, 'go').resolves({ checkPageVisited: true }) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') - }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/purpose', () => { - const path = 'purpose' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(SelectPurposeService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select the purpose for the requirement for returns' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Select the purpose for the requirement for returns') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitPurposeService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the page has not been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitPurposeService, 'go').resolves({}) - }) - - it('redirects to /system/return-requirements/{sessionId}/points/{requirementIndex}', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/points/0') - }) - }) - - describe('and the page has been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitPurposeService, 'go').resolves({ checkPageVisited: true }) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') - }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/reason', () => { - const path = 'reason' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(SelectReasonService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select the reason for the requirements for returns' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Select the reason for the requirements for returns') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitReasonService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the page has not been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitReasonService, 'go').resolves({}) - }) - - it('redirects to /system/return-requirements/{sessionId}/method', async () => { - const response = await server.inject(_postOptions(path)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/method') - }) - }) - - describe('and the page has been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitReasonService, 'go').resolves({ checkPageVisited: true }) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(_postOptions(path)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') - }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/remove', () => { - const path = 'remove' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(RemoveService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'You are about to remove these requirements for returns' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('You are about to remove these requirements for returns') - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/returns-cycle', () => { - const path = 'returns-cycle' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(ReturnCycleService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select the returns cycle for the return requirement' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Select the returns cycle for the return requirement') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitReturnsCycleService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the page has not been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitReturnsCycleService, 'go').resolves({}) - }) - - it('redirects to /system/return-requirements/{sessionId}/site-description/{requirementIndex}', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/site-description/0') - }) - }) - - describe('and the page has been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitReturnsCycleService, 'go').resolves({ checkPageVisited: true }) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') - }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/site-description', () => { - const path = 'site-description' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(SiteDescriptionService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', - pageTitle: 'Enter a site description for the requirements for returns' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Enter a site description for the requirements for returns') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitSiteDescriptionService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the page has not been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitSiteDescriptionService, 'go').resolves({}) - }) - - it('redirects to /system/return-requirements/{sessionId}/frequency-collected/{requirementIndex}', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/frequency-collected/0') - }) - }) - - describe('and the page has been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitSiteDescriptionService, 'go').resolves({ checkPageVisited: true }) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(_postOptions(path, requirementIndex)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') - }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/start-date', () => { - const path = 'start-date' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(StartDateService, 'go').resolves({ - id: '8702b98f-ae51-475d-8fcc-e049af8b8d38', pageTitle: 'Select the start date for the requirements for returns' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject(_getOptions(path)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Select the start date for the requirements for returns') - }) - }) - }) - - describe('POST', () => { - describe('when the request succeeds', () => { - describe('and the validation fails', () => { - beforeEach(async () => { - Sinon.stub(SubmitStartDateService, 'go').resolves({ error: {} }) - }) - - it('returns the page successfully with the error summary banner', async () => { - const response = await server.inject(postRequestOptions(`/return-requirements/${sessionId}/${path}`)) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('There is a problem') - }) - }) - - describe('and the journey is returns-required', () => { - beforeEach(async () => { - Sinon.stub(SubmitStartDateService, 'go').resolves({ journey: 'returns-required' }) - }) - - it('redirects to /system/return-requirements/{sessionId}/reason', async () => { - const response = await server.inject(postRequestOptions(`/return-requirements/${sessionId}/${path}`)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/reason') - }) - }) - - describe('and the page has not been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitStartDateService, 'go').resolves({}) - }) - - it('redirects to /system/return-requirements/{sessionId}/no-returns-required', async () => { - const response = await server.inject(postRequestOptions(`/return-requirements/${sessionId}/${path}`)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/no-returns-required') - }) - }) - - describe('and the page has been visited previously ', () => { - beforeEach(async () => { - Sinon.stub(SubmitStartDateService, 'go').resolves({ checkPageVisited: true }) - }) - - it('redirects to /system/return-requirements/{sessionId}/check', async () => { - const response = await server.inject(postRequestOptions(`/return-requirements/${sessionId}/${path}`)) - - expect(response.statusCode).to.equal(302) - expect(response.headers.location).to.equal('/system/return-requirements/' + sessionId + '/check') - }) - }) - }) - }) - }) - - describe('/return-requirements/{sessionId}/view', () => { - const path = 'view' - const returnVersionId = '2a075724-b66c-410e-9fc8-b964077204f2' - - describe('GET', () => { - beforeEach(async () => { - Sinon.stub(ViewService, 'go').resolves({ - pageTitle: 'Requirements for returns valid from' - }) - }) - - describe('when the request succeeds', () => { - it('returns the page successfully', async () => { - const response = await server.inject({ - method: 'GET', - url: `/return-requirements/${returnVersionId}/${path}`, - auth: { - strategy: 'session', - credentials: { scope: ['billing'] } - } - }) - - expect(response.statusCode).to.equal(200) - expect(response.payload).to.contain('Requirements for returns valid from') + expect(response.payload).to.contain('Requirements for returns valid from') }) }) }) }) }) - -function _getOptions (path, index = -1) { - let url = `/return-requirements/${sessionId}/${path}` - - if (index > -1) { - url = `${url}/${index}` - } - - return { - method: 'GET', - url, - auth: { - strategy: 'session', - credentials: { scope: ['billing'] } - } - } -} - -function _postOptions (path, index = -1, payload) { - let url = `/return-requirements/${sessionId}/${path}` - - if (index > -1) { - url = `${url}/${index}` - } - - return postRequestOptions(url, payload) -} diff --git a/test/presenters/licences/set-up.presenter.test.js b/test/presenters/licences/set-up.presenter.test.js index 6492dce1ba..10fbb5fced 100644 --- a/test/presenters/licences/set-up.presenter.test.js +++ b/test/presenters/licences/set-up.presenter.test.js @@ -575,7 +575,7 @@ describe('Licences - Set Up presenter', () => { { action: [ { - link: '/system/return-requirements/0312e5eb-67ae-44fb-922c-b1a0b81bc08d/view', + link: '/system/return-requirements/0312e5eb-67ae-44fb-922c-b1a0b81bc08d', text: 'View' } ], @@ -601,7 +601,7 @@ describe('Licences - Set Up presenter', () => { { action: [ { - link: '/system/return-requirements/0312e5eb-67ae-44fb-922c-b1a0b81bc08d/view', + link: '/system/return-requirements/0312e5eb-67ae-44fb-922c-b1a0b81bc08d', text: 'View' } ], diff --git a/test/presenters/licences/view-licence-history.presenter.test.js b/test/presenters/licences/view-licence-history.presenter.test.js index 7bbd13bf55..d617c306c7 100644 --- a/test/presenters/licences/view-licence-history.presenter.test.js +++ b/test/presenters/licences/view-licence-history.presenter.test.js @@ -61,7 +61,7 @@ describe('View Licence History presenter', () => { dateCreated: '5 April 2021', displayNote: true, notes: ['Test note'], - link: '/system/return-requirements/3f09ce0b-288c-4c0b-b519-7329fe70a6cc/view', + link: '/system/return-requirements/3f09ce0b-288c-4c0b-b519-7329fe70a6cc', reason: 'New licence', type: { index: 2, name: 'Return version' } } @@ -131,7 +131,7 @@ describe('View Licence History presenter', () => { it('returns the return version link', () => { const result = ViewLicenceHistoryPresenter.go(licence) - expect(result.entries[2].link).to.equal('/system/return-requirements/3f09ce0b-288c-4c0b-b519-7329fe70a6cc/view') + expect(result.entries[2].link).to.equal('/system/return-requirements/3f09ce0b-288c-4c0b-b519-7329fe70a6cc') }) }) }) diff --git a/test/presenters/return-requirements/abstraction-period.presenter.test.js b/test/presenters/return-requirements/setup/abstraction-period.presenter.test.js similarity index 87% rename from test/presenters/return-requirements/abstraction-period.presenter.test.js rename to test/presenters/return-requirements/setup/abstraction-period.presenter.test.js index b1bc41a9cc..7daf475d62 100644 --- a/test/presenters/return-requirements/abstraction-period.presenter.test.js +++ b/test/presenters/return-requirements/setup/abstraction-period.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const AbstractionPeriodPresenter = require('../../../app/presenters/return-requirements/abstraction-period.presenter.js') +const AbstractionPeriodPresenter = require('../../../../app/presenters/return-requirements/setup/abstraction-period.presenter.js') -describe('Return Requirements - Abstraction Period presenter', () => { +describe('Return Requirements Setup - Abstraction Period presenter', () => { const requirementIndex = 0 let session @@ -40,7 +40,7 @@ describe('Return Requirements - Abstraction Period presenter', () => { expect(result).to.equal({ abstractionPeriod: null, - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/points/0', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/points/0', licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', sessionId: '61e07498-f309-4829-96a9-72084a54996d' @@ -89,7 +89,7 @@ describe('Return Requirements - Abstraction Period presenter', () => { it('returns a link back to the "check" page', () => { const result = AbstractionPeriodPresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) @@ -97,7 +97,7 @@ describe('Return Requirements - Abstraction Period presenter', () => { it('returns a link back to the "points" page', () => { const result = AbstractionPeriodPresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/points/0') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/points/0') }) }) }) diff --git a/test/presenters/return-requirements/additional-submission-options.presenter.test.js b/test/presenters/return-requirements/setup/additional-submission-options.presenter.test.js similarity index 86% rename from test/presenters/return-requirements/additional-submission-options.presenter.test.js rename to test/presenters/return-requirements/setup/additional-submission-options.presenter.test.js index 3460cabaab..ce86739950 100644 --- a/test/presenters/return-requirements/additional-submission-options.presenter.test.js +++ b/test/presenters/return-requirements/setup/additional-submission-options.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const AdditionalSubmissionOptionsPresenter = require('../../../app/presenters/return-requirements/additional-submission-options.presenter.js') +const AdditionalSubmissionOptionsPresenter = require('../../../../app/presenters/return-requirements/setup/additional-submission-options.presenter.js') -describe('Return Requirements - Additional Submission Options presenter', () => { +describe('Return Requirements Setup - Additional Submission Options presenter', () => { let session beforeEach(() => { @@ -37,7 +37,7 @@ describe('Return Requirements - Additional Submission Options presenter', () => const result = AdditionalSubmissionOptionsPresenter.go(session) expect(result).to.be.equal({ - backLink: `/system/return-requirements/${session.id}/check`, + backLink: `/system/return-requirements/setup/${session.id}/check`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', additionalSubmissionOptions: [], licenceRef: '01/ABC', @@ -50,7 +50,7 @@ describe('Return Requirements - Additional Submission Options presenter', () => it('returns a link back to the "check" page', () => { const result = AdditionalSubmissionOptionsPresenter.go(session) - expect(result.backLink).to.equal(`/system/return-requirements/${session.id}/check`) + expect(result.backLink).to.equal(`/system/return-requirements/setup/${session.id}/check`) }) }) diff --git a/test/presenters/return-requirements/agreements-exceptions.presenter.test.js b/test/presenters/return-requirements/setup/agreements-exceptions.presenter.test.js similarity index 85% rename from test/presenters/return-requirements/agreements-exceptions.presenter.test.js rename to test/presenters/return-requirements/setup/agreements-exceptions.presenter.test.js index 998d212dd4..f9a2a09140 100644 --- a/test/presenters/return-requirements/agreements-exceptions.presenter.test.js +++ b/test/presenters/return-requirements/setup/agreements-exceptions.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const AgreementsExceptionsPresenter = require('../../../app/presenters/return-requirements/agreements-exceptions.presenter.js') +const AgreementsExceptionsPresenter = require('../../../../app/presenters/return-requirements/setup/agreements-exceptions.presenter.js') -describe('Return Requirements - Agreements Exceptions presenter', () => { +describe('Return Requirements Setup - Agreements Exceptions presenter', () => { const requirementIndex = 0 let session @@ -40,7 +40,7 @@ describe('Return Requirements - Agreements Exceptions presenter', () => { expect(result).to.equal({ agreementsExceptions: null, - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/frequency-reported/0', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/frequency-reported/0', licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', sessionId: '61e07498-f309-4829-96a9-72084a54996d' @@ -79,7 +79,7 @@ describe('Return Requirements - Agreements Exceptions presenter', () => { it('returns a link back to the "check" page', () => { const result = AgreementsExceptionsPresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) @@ -87,7 +87,7 @@ describe('Return Requirements - Agreements Exceptions presenter', () => { it('returns a link back to the "frequency-reported" page', () => { const result = AgreementsExceptionsPresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/frequency-reported/0') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/frequency-reported/0') }) }) }) diff --git a/test/presenters/return-requirements/cancel.presenter.test.js b/test/presenters/return-requirements/setup/cancel.presenter.test.js similarity index 93% rename from test/presenters/return-requirements/cancel.presenter.test.js rename to test/presenters/return-requirements/setup/cancel.presenter.test.js index 91afd9b627..9c02fed1ae 100644 --- a/test/presenters/return-requirements/cancel.presenter.test.js +++ b/test/presenters/return-requirements/setup/cancel.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const CancelPresenter = require('../../../app/presenters/return-requirements/cancel.presenter.js') +const CancelPresenter = require('../../../../app/presenters/return-requirements/setup/cancel.presenter.js') -describe('Return Requirements - Cancel presenter', () => { +describe('Return Requirements Setup - Cancel presenter', () => { let session beforeEach(() => { @@ -57,7 +57,7 @@ describe('Return Requirements - Cancel presenter', () => { const result = CancelPresenter.go(session) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check', licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', reason: 'Major change', diff --git a/test/presenters/return-requirements/check.presenter.test.js b/test/presenters/return-requirements/setup/check/check.presenter.test.js similarity index 92% rename from test/presenters/return-requirements/check.presenter.test.js rename to test/presenters/return-requirements/setup/check/check.presenter.test.js index d8cbd03b67..41163f70b5 100644 --- a/test/presenters/return-requirements/check.presenter.test.js +++ b/test/presenters/return-requirements/setup/check/check.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const CheckPresenter = require('../../../app/presenters/return-requirements/check.presenter.js') +const CheckPresenter = require('../../../../../app/presenters/return-requirements/setup/check/check.presenter.js') -describe('Return Requirements - Check presenter', () => { +describe('Return Requirements Setup - Check presenter', () => { let session beforeEach(() => { @@ -49,7 +49,7 @@ describe('Return Requirements - Check presenter', () => { }, pageTitle: 'Check the requirements for returns for Turbo Kid', reason: 'Major change', - reasonLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/reason', + reasonLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/reason', sessionId: '61e07498-f309-4829-96a9-72084a54996d', startDate: '1 January 2023' }) @@ -143,7 +143,7 @@ describe('Return Requirements - Check presenter', () => { it('returns a link to the "reason" page', () => { const result = CheckPresenter.go(session) - expect(result.reasonLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/reason') + expect(result.reasonLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/reason') }) }) @@ -155,7 +155,7 @@ describe('Return Requirements - Check presenter', () => { it('returns a link to the "no-returns-required" page', () => { const result = CheckPresenter.go(session) - expect(result.reasonLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/no-returns-required') + expect(result.reasonLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/no-returns-required') }) }) }) diff --git a/test/presenters/return-requirements/check/returns-requirements.presenter.test.js b/test/presenters/return-requirements/setup/check/returns-requirements.presenter.test.js similarity index 96% rename from test/presenters/return-requirements/check/returns-requirements.presenter.test.js rename to test/presenters/return-requirements/setup/check/returns-requirements.presenter.test.js index 2d46909a94..dee6eaf71e 100644 --- a/test/presenters/return-requirements/check/returns-requirements.presenter.test.js +++ b/test/presenters/return-requirements/setup/check/returns-requirements.presenter.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const PointModel = require('../../../../app/models/point.model.js') +const PointModel = require('../../../../../app/models/point.model.js') // Thing under test -const ReturnRequirementsPresenter = require('../../../../app/presenters/return-requirements/check/returns-requirements.presenter.js') +const ReturnRequirementsPresenter = require('../../../../../app/presenters/return-requirements/setup/check/returns-requirements.presenter.js') -describe('Return Requirements - Return Requirements presenter', () => { +describe('Return Requirements Setup - Return Requirements presenter', () => { let journey let point let requirement diff --git a/test/presenters/return-requirements/existing.presenter.test.js b/test/presenters/return-requirements/setup/existing.presenter.test.js similarity index 95% rename from test/presenters/return-requirements/existing.presenter.test.js rename to test/presenters/return-requirements/setup/existing.presenter.test.js index 3fb53150b8..5797a934a9 100644 --- a/test/presenters/return-requirements/existing.presenter.test.js +++ b/test/presenters/return-requirements/setup/existing.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const ExistingPresenter = require('../../../app/presenters/return-requirements/existing.presenter.js') +const ExistingPresenter = require('../../../../app/presenters/return-requirements/setup/existing.presenter.js') -describe('Return Requirements - Existing presenter', () => { +describe('Return Requirements Setup - Existing presenter', () => { let session beforeEach(() => { diff --git a/test/presenters/return-requirements/frequency-collected.presenter.test.js b/test/presenters/return-requirements/setup/frequency-collected.presenter.test.js similarity index 85% rename from test/presenters/return-requirements/frequency-collected.presenter.test.js rename to test/presenters/return-requirements/setup/frequency-collected.presenter.test.js index 476d359aa1..811fc07489 100644 --- a/test/presenters/return-requirements/frequency-collected.presenter.test.js +++ b/test/presenters/return-requirements/setup/frequency-collected.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const FrequencyCollectedPresenter = require('../../../app/presenters/return-requirements/frequency-collected.presenter.js') +const FrequencyCollectedPresenter = require('../../../../app/presenters/return-requirements/setup/frequency-collected.presenter.js') -describe('Return Requirements - Frequency Collected presenter', () => { +describe('Return Requirements Setup - Frequency Collected presenter', () => { const requirementIndex = 0 let session @@ -39,7 +39,7 @@ describe('Return Requirements - Frequency Collected presenter', () => { const result = FrequencyCollectedPresenter.go(session, requirementIndex) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/site-description/0', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/site-description/0', frequencyCollected: null, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', @@ -57,7 +57,7 @@ describe('Return Requirements - Frequency Collected presenter', () => { it('returns a link back to the "check" page', () => { const result = FrequencyCollectedPresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) @@ -65,7 +65,7 @@ describe('Return Requirements - Frequency Collected presenter', () => { it('returns a link back to the "site-description" page', () => { const result = FrequencyCollectedPresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/site-description/0') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/site-description/0') }) }) }) diff --git a/test/presenters/return-requirements/frequency-reported.presenter.test.js b/test/presenters/return-requirements/setup/frequency-reported.presenter.test.js similarity index 85% rename from test/presenters/return-requirements/frequency-reported.presenter.test.js rename to test/presenters/return-requirements/setup/frequency-reported.presenter.test.js index 8048491dd8..5c7ee3f842 100644 --- a/test/presenters/return-requirements/frequency-reported.presenter.test.js +++ b/test/presenters/return-requirements/setup/frequency-reported.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const FrequencyReportedPresenter = require('../../../app/presenters/return-requirements/frequency-reported.presenter.js') +const FrequencyReportedPresenter = require('../../../../app/presenters/return-requirements/setup/frequency-reported.presenter.js') -describe('Return Requirements - Frequency Reported presenter', () => { +describe('Return Requirements Setup - Frequency Reported presenter', () => { const requirementIndex = 0 let session @@ -39,7 +39,7 @@ describe('Return Requirements - Frequency Reported presenter', () => { const result = FrequencyReportedPresenter.go(session, requirementIndex) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/frequency-collected/0', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/frequency-collected/0', frequencyReported: null, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', @@ -57,7 +57,7 @@ describe('Return Requirements - Frequency Reported presenter', () => { it('returns a link back to the "check" page', () => { const result = FrequencyReportedPresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) @@ -65,7 +65,7 @@ describe('Return Requirements - Frequency Reported presenter', () => { it('returns a link back to the "frequency-collected" page', () => { const result = FrequencyReportedPresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/frequency-collected/0') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/frequency-collected/0') }) }) }) diff --git a/test/presenters/return-requirements/method.presenter.test.js b/test/presenters/return-requirements/setup/method.presenter.test.js similarity index 89% rename from test/presenters/return-requirements/method.presenter.test.js rename to test/presenters/return-requirements/setup/method.presenter.test.js index 1dda6e29c6..0d5348ea75 100644 --- a/test/presenters/return-requirements/method.presenter.test.js +++ b/test/presenters/return-requirements/setup/method.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const MethodPresenter = require('../../../app/presenters/return-requirements/method.presenter.js') +const MethodPresenter = require('../../../../app/presenters/return-requirements/setup/method.presenter.js') -describe('Return Requirements - Method presenter', () => { +describe('Return Requirements Setup - Method presenter', () => { let session beforeEach(() => { @@ -42,7 +42,7 @@ describe('Return Requirements - Method presenter', () => { const result = MethodPresenter.go(session) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/reason', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/reason', displayCopyExisting: true, licenceRef: '01/ABC', sessionId: '61e07498-f309-4829-96a9-72084a54996d', @@ -55,7 +55,7 @@ describe('Return Requirements - Method presenter', () => { it('returns a link back to the "start-date" page', () => { const result = MethodPresenter.go(session) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/reason') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/reason') }) }) diff --git a/test/presenters/return-requirements/no-returns-required.presenter.test.js b/test/presenters/return-requirements/setup/no-returns-required.presenter.test.js similarity index 84% rename from test/presenters/return-requirements/no-returns-required.presenter.test.js rename to test/presenters/return-requirements/setup/no-returns-required.presenter.test.js index 31df93e6ba..3cd66f32cc 100644 --- a/test/presenters/return-requirements/no-returns-required.presenter.test.js +++ b/test/presenters/return-requirements/setup/no-returns-required.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const NoReturnsRequiredPresenter = require('../../../app/presenters/return-requirements/no-returns-required.presenter.js') +const NoReturnsRequiredPresenter = require('../../../../app/presenters/return-requirements/setup/no-returns-required.presenter.js') -describe('Return Requirements - No Returns Required presenter', () => { +describe('Return Requirements Setup - No Returns Required presenter', () => { let session beforeEach(() => { @@ -36,7 +36,7 @@ describe('Return Requirements - No Returns Required presenter', () => { const result = NoReturnsRequiredPresenter.go(session) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/start-date', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/start-date', licenceRef: '01/ABC', reason: null, sessionId: '61e07498-f309-4829-96a9-72084a54996d' @@ -53,7 +53,7 @@ describe('Return Requirements - No Returns Required presenter', () => { it('returns a link back to the "check" page', () => { const result = NoReturnsRequiredPresenter.go(session) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) @@ -61,7 +61,7 @@ describe('Return Requirements - No Returns Required presenter', () => { it('returns a link back to the "start-date" page', () => { const result = NoReturnsRequiredPresenter.go(session) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/start-date') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/start-date') }) }) }) diff --git a/test/presenters/return-requirements/note.presenter.test.js b/test/presenters/return-requirements/setup/note.presenter.test.js similarity index 86% rename from test/presenters/return-requirements/note.presenter.test.js rename to test/presenters/return-requirements/setup/note.presenter.test.js index 90e9a65934..8e493fd9cc 100644 --- a/test/presenters/return-requirements/note.presenter.test.js +++ b/test/presenters/return-requirements/setup/note.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const NotePresenter = require('../../../app/presenters/return-requirements/note.presenter.js') +const NotePresenter = require('../../../../app/presenters/return-requirements/setup/note.presenter.js') -describe('Return Requirements - Note presenter', () => { +describe('Return Requirements Setup - Note presenter', () => { let session beforeEach(() => { @@ -37,7 +37,7 @@ describe('Return Requirements - Note presenter', () => { const result = NotePresenter.go(session) expect(result).to.be.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check', licenceRef: '01/ABC', note: null, sessionId: '61e07498-f309-4829-96a9-72084a54996d' @@ -49,7 +49,7 @@ describe('Return Requirements - Note presenter', () => { it('returns a link back to the "check" page', () => { const result = NotePresenter.go(session) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) diff --git a/test/presenters/return-requirements/points.presenter.test.js b/test/presenters/return-requirements/setup/points.presenter.test.js similarity index 92% rename from test/presenters/return-requirements/points.presenter.test.js rename to test/presenters/return-requirements/setup/points.presenter.test.js index e17d1e2fb9..11eb5c2fd3 100644 --- a/test/presenters/return-requirements/points.presenter.test.js +++ b/test/presenters/return-requirements/setup/points.presenter.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const PointModel = require('../../../app/models/point.model.js') +const PointModel = require('../../../../app/models/point.model.js') // Thing under test -const PointsPresenter = require('../../../app/presenters/return-requirements/points.presenter.js') +const PointsPresenter = require('../../../../app/presenters/return-requirements/setup/points.presenter.js') -describe('Return Requirements - Points presenter', () => { +describe('Return Requirements Setup - Points presenter', () => { const requirementIndex = 0 let points @@ -45,7 +45,7 @@ describe('Return Requirements - Points presenter', () => { const result = PointsPresenter.go(session, requirementIndex, points) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/purpose/0', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/purpose/0', licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licencePoints: [{ id: 'd03d7d7c-4e33-4b4d-ac9b-6ebac9a5e5f6', @@ -73,7 +73,7 @@ describe('Return Requirements - Points presenter', () => { it('returns a link back to the "check" page', () => { const result = PointsPresenter.go(session, requirementIndex, points) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) @@ -81,7 +81,7 @@ describe('Return Requirements - Points presenter', () => { it('returns a link back to the "purpose" page', () => { const result = PointsPresenter.go(session, requirementIndex, points) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/purpose/0') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/purpose/0') }) }) }) diff --git a/test/presenters/return-requirements/purpose.presenter.test.js b/test/presenters/return-requirements/setup/purpose.presenter.test.js similarity index 93% rename from test/presenters/return-requirements/purpose.presenter.test.js rename to test/presenters/return-requirements/setup/purpose.presenter.test.js index 418add894e..ff5ca95346 100644 --- a/test/presenters/return-requirements/purpose.presenter.test.js +++ b/test/presenters/return-requirements/setup/purpose.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const PurposePresenter = require('../../../app/presenters/return-requirements/purpose.presenter.js') +const PurposePresenter = require('../../../../app/presenters/return-requirements/setup/purpose.presenter.js') -describe('Return Requirements - Purpose presenter', () => { +describe('Return Requirements Setup - Purpose presenter', () => { const requirementIndex = 0 let licencePurposes @@ -47,7 +47,7 @@ describe('Return Requirements - Purpose presenter', () => { const result = PurposePresenter.go(session, requirementIndex, licencePurposes) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/method', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/method', licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', purposes: [ @@ -71,7 +71,7 @@ describe('Return Requirements - Purpose presenter', () => { it('returns a link back to the "check" page', () => { const result = PurposePresenter.go(session, requirementIndex, licencePurposes) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) @@ -86,7 +86,7 @@ describe('Return Requirements - Purpose presenter', () => { it('returns a link back to the "check" page', () => { const result = PurposePresenter.go(session, requirementIndex, licencePurposes) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) }) @@ -95,7 +95,7 @@ describe('Return Requirements - Purpose presenter', () => { it('returns a link back to the "method" page', () => { const result = PurposePresenter.go(session, requirementIndex, licencePurposes) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/method') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/method') }) }) }) diff --git a/test/presenters/return-requirements/reason.presenter.test.js b/test/presenters/return-requirements/setup/reason.presenter.test.js similarity index 85% rename from test/presenters/return-requirements/reason.presenter.test.js rename to test/presenters/return-requirements/setup/reason.presenter.test.js index 7787109125..dba54f7aae 100644 --- a/test/presenters/return-requirements/reason.presenter.test.js +++ b/test/presenters/return-requirements/setup/reason.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const ReasonPresenter = require('../../../app/presenters/return-requirements/reason.presenter.js') +const ReasonPresenter = require('../../../../app/presenters/return-requirements/setup/reason.presenter.js') -describe('Return Requirements - Reason presenter', () => { +describe('Return Requirements Setup - Reason presenter', () => { let session beforeEach(() => { @@ -36,7 +36,7 @@ describe('Return Requirements - Reason presenter', () => { const result = ReasonPresenter.go(session) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/start-date', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/start-date', licenceRef: '01/ABC', reason: null, sessionId: '61e07498-f309-4829-96a9-72084a54996d' @@ -53,7 +53,7 @@ describe('Return Requirements - Reason presenter', () => { it('returns a link back to the "check" page', () => { const result = ReasonPresenter.go(session) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) @@ -61,7 +61,7 @@ describe('Return Requirements - Reason presenter', () => { it('returns a link back to the "start-date" page', () => { const result = ReasonPresenter.go(session) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/start-date') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/start-date') }) }) }) diff --git a/test/presenters/return-requirements/remove.presenter.test.js b/test/presenters/return-requirements/setup/remove.presenter.test.js similarity index 91% rename from test/presenters/return-requirements/remove.presenter.test.js rename to test/presenters/return-requirements/setup/remove.presenter.test.js index 24cf336fdf..ea6d10df11 100644 --- a/test/presenters/return-requirements/remove.presenter.test.js +++ b/test/presenters/return-requirements/setup/remove.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const RemovePresenter = require('../../../app/presenters/return-requirements/remove.presenter.js') +const RemovePresenter = require('../../../../app/presenters/return-requirements/setup/remove.presenter.js') -describe('Return Requirements - Remove presenter', () => { +describe('Return Requirements Setup - Remove presenter', () => { const requirementIndex = 0 let session @@ -59,7 +59,7 @@ describe('Return Requirements - Remove presenter', () => { const result = RemovePresenter.go(session, requirementIndex) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check', licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', returnRequirement: 'Winter and all year monthly requirements for returns, Bore hole in rear field.', @@ -73,7 +73,7 @@ describe('Return Requirements - Remove presenter', () => { it('returns a link back to the "setup" page', () => { const result = RemovePresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) diff --git a/test/presenters/return-requirements/returns-cycle.presenter.test.js b/test/presenters/return-requirements/setup/returns-cycle.presenter.test.js similarity index 85% rename from test/presenters/return-requirements/returns-cycle.presenter.test.js rename to test/presenters/return-requirements/setup/returns-cycle.presenter.test.js index b4be7f9d00..c075b074ca 100644 --- a/test/presenters/return-requirements/returns-cycle.presenter.test.js +++ b/test/presenters/return-requirements/setup/returns-cycle.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const ReturnsCyclePresenter = require('../../../app/presenters/return-requirements/returns-cycle.presenter.js') +const ReturnsCyclePresenter = require('../../../../app/presenters/return-requirements/setup/returns-cycle.presenter.js') -describe('Return Requirements - Returns Cycle presenter', () => { +describe('Return Requirements Setup - Returns Cycle presenter', () => { const requirementIndex = 0 let session @@ -39,7 +39,7 @@ describe('Return Requirements - Returns Cycle presenter', () => { const result = ReturnsCyclePresenter.go(session, requirementIndex) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/abstraction-period/0', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/abstraction-period/0', licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', returnsCycle: null, @@ -57,7 +57,7 @@ describe('Return Requirements - Returns Cycle presenter', () => { it('returns a link back to the "check" page', () => { const result = ReturnsCyclePresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) @@ -65,7 +65,7 @@ describe('Return Requirements - Returns Cycle presenter', () => { it('returns a link back to the "abstraction-period" page', () => { const result = ReturnsCyclePresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/abstraction-period/0') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/abstraction-period/0') }) }) }) diff --git a/test/presenters/return-requirements/site-description.presenter.test.js b/test/presenters/return-requirements/setup/site-description.presenter.test.js similarity index 86% rename from test/presenters/return-requirements/site-description.presenter.test.js rename to test/presenters/return-requirements/setup/site-description.presenter.test.js index 351e12d553..1308b32fd6 100644 --- a/test/presenters/return-requirements/site-description.presenter.test.js +++ b/test/presenters/return-requirements/setup/site-description.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const SiteDescriptionPresenter = require('../../../app/presenters/return-requirements/site-description.presenter.js') +const SiteDescriptionPresenter = require('../../../../app/presenters/return-requirements/setup/site-description.presenter.js') -describe('Return Requirements - Site Description presenter', () => { +describe('Return Requirements Setup - Site Description presenter', () => { const requirementIndex = 0 let session @@ -39,7 +39,7 @@ describe('Return Requirements - Site Description presenter', () => { const result = SiteDescriptionPresenter.go(session, requirementIndex) expect(result).to.equal({ - backLink: '/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/returns-cycle/0', + backLink: '/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/returns-cycle/0', licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', sessionId: '61e07498-f309-4829-96a9-72084a54996d', @@ -57,7 +57,7 @@ describe('Return Requirements - Site Description presenter', () => { it('returns a link back to the "check" page', () => { const result = SiteDescriptionPresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) @@ -65,7 +65,7 @@ describe('Return Requirements - Site Description presenter', () => { it('returns a link back to the "returns-cycle" page', () => { const result = SiteDescriptionPresenter.go(session, requirementIndex) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/returns-cycle/0') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/returns-cycle/0') }) }) }) diff --git a/test/presenters/return-requirements/start-date.presenter.test.js b/test/presenters/return-requirements/setup/start-date.presenter.test.js similarity index 92% rename from test/presenters/return-requirements/start-date.presenter.test.js rename to test/presenters/return-requirements/setup/start-date.presenter.test.js index 461186941d..34814f70d5 100644 --- a/test/presenters/return-requirements/start-date.presenter.test.js +++ b/test/presenters/return-requirements/setup/start-date.presenter.test.js @@ -9,10 +9,10 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const FeatureFlagsConfig = require('../../../config/feature-flags.config.js') -const StartDatePresenter = require('../../../app/presenters/return-requirements/start-date.presenter.js') +const FeatureFlagsConfig = require('../../../../config/feature-flags.config.js') +const StartDatePresenter = require('../../../../app/presenters/return-requirements/setup/start-date.presenter.js') -describe('Return Requirements - Start Date presenter', () => { +describe('Return Requirements Setup - Start Date presenter', () => { let session beforeEach(async () => { @@ -61,7 +61,7 @@ describe('Return Requirements - Start Date presenter', () => { it('returns a link back to the "check" page', () => { const result = StartDatePresenter.go(session) - expect(result.backLink).to.equal('/system/return-requirements/61e07498-f309-4829-96a9-72084a54996d/check') + expect(result.backLink).to.equal('/system/return-requirements/setup/61e07498-f309-4829-96a9-72084a54996d/check') }) }) diff --git a/test/services/licences/view-licence-history.service.test.js b/test/services/licences/view-licence-history.service.test.js index f8f74f3e76..f0a0020328 100644 --- a/test/services/licences/view-licence-history.service.test.js +++ b/test/services/licences/view-licence-history.service.test.js @@ -66,7 +66,7 @@ describe('View Licence History service', () => { dateCreated: '5 April 2021', displayNote: true, notes: ['Test note'], - link: '/system/return-requirements/3f09ce0b-288c-4c0b-b519-7329fe70a6cc/view', + link: '/system/return-requirements/3f09ce0b-288c-4c0b-b519-7329fe70a6cc', reason: 'New licence', type: { index: 2, name: 'Return version' } } diff --git a/test/services/licences/view-licence-set-up.service.test.js b/test/services/licences/view-licence-set-up.service.test.js index 095c89c009..d50cc2151a 100644 --- a/test/services/licences/view-licence-set-up.service.test.js +++ b/test/services/licences/view-licence-set-up.service.test.js @@ -152,7 +152,7 @@ describe('View Licence Set Up service', () => { { action: [ { - link: '/system/return-requirements/0312e5eb-67ae-44fb-922c-b1a0b81bc08d/view', + link: '/system/return-requirements/0312e5eb-67ae-44fb-922c-b1a0b81bc08d', text: 'View' } ], diff --git a/test/services/return-requirements/abstraction-period.service.test.js b/test/services/return-requirements/setup/abstraction-period.service.test.js similarity index 81% rename from test/services/return-requirements/abstraction-period.service.test.js rename to test/services/return-requirements/setup/abstraction-period.service.test.js index 164f31879b..964136e0be 100644 --- a/test/services/return-requirements/abstraction-period.service.test.js +++ b/test/services/return-requirements/setup/abstraction-period.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const AbstractionPeriodService = require('../../../app/services/return-requirements/abstraction-period.service.js') +const AbstractionPeriodService = require('../../../../app/services/return-requirements/setup/abstraction-period.service.js') -describe('Return Requirements - Abstraction Period service', () => { +describe('Return Requirements Setup - Abstraction Period service', () => { const requirementIndex = 0 let session @@ -52,7 +52,7 @@ describe('Return Requirements - Abstraction Period service', () => { activeNavBar: 'search', pageTitle: 'Enter the abstraction period for the requirements for returns', abstractionPeriod: null, - backLink: `/system/return-requirements/${session.id}/points/0`, + backLink: `/system/return-requirements/setup/${session.id}/points/0`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC' }, { skip: ['sessionId'] }) diff --git a/test/services/return-requirements/add.service.test.js b/test/services/return-requirements/setup/add.service.test.js similarity index 85% rename from test/services/return-requirements/add.service.test.js rename to test/services/return-requirements/setup/add.service.test.js index cee896c03d..a348c2ad93 100644 --- a/test/services/return-requirements/add.service.test.js +++ b/test/services/return-requirements/setup/add.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const AddService = require('../../../app/services/return-requirements/add.service.js') +const AddService = require('../../../../app/services/return-requirements/setup/add.service.js') -describe('Return Requirements - Add service', () => { +describe('Return Requirements Setup - Add service', () => { let session beforeEach(async () => { diff --git a/test/services/return-requirements/additional-submission-options.service.test.js b/test/services/return-requirements/setup/additional-submission-options.service.test.js similarity index 79% rename from test/services/return-requirements/additional-submission-options.service.test.js rename to test/services/return-requirements/setup/additional-submission-options.service.test.js index 579886b4f7..b43fc12486 100644 --- a/test/services/return-requirements/additional-submission-options.service.test.js +++ b/test/services/return-requirements/setup/additional-submission-options.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const AdditionalSubmissionOptionsService = require('../../../app/services/return-requirements/additional-submission-options.service.js') +const AdditionalSubmissionOptionsService = require('../../../../app/services/return-requirements/setup/additional-submission-options.service.js') -describe('Return Requirements - Additional Submission Options service', () => { +describe('Return Requirements Setup - Additional Submission Options service', () => { let session beforeEach(async () => { @@ -49,7 +49,7 @@ describe('Return Requirements - Additional Submission Options service', () => { expect(result).to.equal({ activeNavBar: 'search', additionalSubmissionOptions: [], - backLink: `/system/return-requirements/${session.id}/check`, + backLink: `/system/return-requirements/setup/${session.id}/check`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', pageTitle: 'Select any additional submission options for the return requirements' diff --git a/test/services/return-requirements/agreements-exceptions.service.test.js b/test/services/return-requirements/setup/agreements-exceptions.service.test.js similarity index 80% rename from test/services/return-requirements/agreements-exceptions.service.test.js rename to test/services/return-requirements/setup/agreements-exceptions.service.test.js index 2365802046..d1681215f3 100644 --- a/test/services/return-requirements/agreements-exceptions.service.test.js +++ b/test/services/return-requirements/setup/agreements-exceptions.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const AgreementsExceptionsService = require('../../../app/services/return-requirements/agreements-exceptions.service.js') +const AgreementsExceptionsService = require('../../../../app/services/return-requirements/setup/agreements-exceptions.service.js') -describe('Return Requirements - Agreements Exceptions service', () => { +describe('Return Requirements Setup - Agreements Exceptions service', () => { const requirementIndex = 0 let session @@ -52,7 +52,7 @@ describe('Return Requirements - Agreements Exceptions service', () => { activeNavBar: 'search', pageTitle: 'Select agreements and exceptions for the requirements for returns', agreementsExceptions: null, - backLink: `/system/return-requirements/${session.id}/frequency-reported/0`, + backLink: `/system/return-requirements/setup/${session.id}/frequency-reported/0`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC' }, { skip: ['sessionId'] }) diff --git a/test/services/return-requirements/cancel.service.test.js b/test/services/return-requirements/setup/cancel.service.test.js similarity index 85% rename from test/services/return-requirements/cancel.service.test.js rename to test/services/return-requirements/setup/cancel.service.test.js index 956c8b816b..acfe2cb9ad 100644 --- a/test/services/return-requirements/cancel.service.test.js +++ b/test/services/return-requirements/setup/cancel.service.test.js @@ -8,13 +8,13 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') -const { generateUUID } = require('../../../app/lib/general.lib.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') +const { generateUUID } = require('../../../../app/lib/general.lib.js') // Thing under test -const CancelService = require('../../../app/services/return-requirements/cancel.service.js') +const CancelService = require('../../../../app/services/return-requirements/setup/cancel.service.js') -describe('Return Requirements - Cancel service', () => { +describe('Return Requirements Setup - Cancel service', () => { let session beforeEach(async () => { @@ -66,7 +66,7 @@ describe('Return Requirements - Cancel service', () => { expect(result).to.equal({ activeNavBar: 'search', - backLink: `/system/return-requirements/${session.id}/check`, + backLink: `/system/return-requirements/setup/${session.id}/check`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', pageTitle: 'You are about to cancel these requirements for returns', diff --git a/test/services/return-requirements/check.service.test.js b/test/services/return-requirements/setup/check/check.service.test.js similarity index 83% rename from test/services/return-requirements/check.service.test.js rename to test/services/return-requirements/setup/check/check.service.test.js index baf6e5a5e9..f0d7efb4c9 100644 --- a/test/services/return-requirements/check.service.test.js +++ b/test/services/return-requirements/setup/check/check.service.test.js @@ -9,13 +9,13 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const FetchPointsService = require('../../../app/services/return-requirements/fetch-points.service.js') -const SessionHelper = require('../../support/helpers/session.helper.js') +const FetchPointsService = require('../../../../../app/services/return-requirements/setup/fetch-points.service.js') +const SessionHelper = require('../../../../support/helpers/session.helper.js') // Thing under test -const CheckService = require('../../../app/services/return-requirements/check.service.js') +const CheckService = require('../../../../../app/services/return-requirements/setup/check/check.service.js') -describe('Return Requirements - Check service', () => { +describe('Return Requirements Setup - Check service', () => { let session let yarStub @@ -73,7 +73,7 @@ describe('Return Requirements - Check service', () => { notification: undefined, pageTitle: 'Check the requirements for returns for Turbo Kid', reason: 'Major change', - reasonLink: `/system/return-requirements/${session.id}/reason`, + reasonLink: `/system/return-requirements/setup/${session.id}/reason`, requirements: [], returnsRequired: true, startDate: '1 January 2023' diff --git a/test/services/return-requirements/generate-return-version-requirements.service.test.js b/test/services/return-requirements/setup/check/generate-return-version-requirements.service.test.js similarity index 93% rename from test/services/return-requirements/generate-return-version-requirements.service.test.js rename to test/services/return-requirements/setup/check/generate-return-version-requirements.service.test.js index 22b83be52e..88157c726d 100644 --- a/test/services/return-requirements/generate-return-version-requirements.service.test.js +++ b/test/services/return-requirements/setup/check/generate-return-version-requirements.service.test.js @@ -8,16 +8,16 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const { generateUUID } = require('../../../app/lib/general.lib.js') -const LicenceHelper = require('../../support/helpers/licence.helper.js') -const LicenceVersionHelper = require('../../support/helpers/licence-version.helper.js') -const LicenceVersionPurposeHelper = require('../../support/helpers/licence-version-purpose.helper.js') -const RegionHelper = require('../../support/helpers/region.helper.js') +const { generateUUID } = require('../../../../../app/lib/general.lib.js') +const LicenceHelper = require('../../../../support/helpers/licence.helper.js') +const LicenceVersionHelper = require('../../../../support/helpers/licence-version.helper.js') +const LicenceVersionPurposeHelper = require('../../../../support/helpers/licence-version-purpose.helper.js') +const RegionHelper = require('../../../../support/helpers/region.helper.js') // Thing under test -const GenerateReturnVersionRequirementsService = require('../../../app/services/return-requirements/generate-return-version-requirements.service.js') +const GenerateReturnVersionRequirementsService = require('../../../../../app/services/return-requirements/setup/check/generate-return-version-requirements.service.js') -describe('Return Requirements - Generate Return Version Requirements service', () => { +describe('Return Requirements Setup - Generate Return Version Requirements service', () => { let licenceId let naldRegionId let requirements diff --git a/test/services/return-requirements/generate-return-version.service.test.js b/test/services/return-requirements/setup/check/generate-return-version.service.test.js similarity index 91% rename from test/services/return-requirements/generate-return-version.service.test.js rename to test/services/return-requirements/setup/check/generate-return-version.service.test.js index 43c9d6b02e..c67c665c08 100644 --- a/test/services/return-requirements/generate-return-version.service.test.js +++ b/test/services/return-requirements/setup/check/generate-return-version.service.test.js @@ -9,17 +9,17 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const { generateUUID } = require('../../../app/lib/general.lib.js') -const ReturnVersionHelper = require('../../support/helpers/return-version.helper.js') +const { generateUUID } = require('../../../../../app/lib/general.lib.js') +const ReturnVersionHelper = require('../../../../support/helpers/return-version.helper.js') // Things we need to stub -const GenerateReturnVersionRequirementsService = require('../../../app/services/return-requirements/generate-return-version-requirements.service.js') -const ProcessExistingReturnVersionsService = require('../../../app/services/return-requirements/process-existing-return-versions.service.js') +const GenerateReturnVersionRequirementsService = require('../../../../../app/services/return-requirements/setup/check/generate-return-version-requirements.service.js') +const ProcessExistingReturnVersionsService = require('../../../../../app/services/return-requirements/setup/check/process-existing-return-versions.service.js') // Thing under test -const GenerateReturnVersionService = require('../../../app/services/return-requirements/generate-return-version.service.js') +const GenerateReturnVersionService = require('../../../../../app/services/return-requirements/setup/check/generate-return-version.service.js') -describe('Generate Return Version service', () => { +describe('Return Requirements Setup - Generate Return Version service', () => { const userId = 12345 let licenceId diff --git a/test/services/return-requirements/persist-return-version.service.test.js b/test/services/return-requirements/setup/check/persist-return-version.service.test.js similarity index 88% rename from test/services/return-requirements/persist-return-version.service.test.js rename to test/services/return-requirements/setup/check/persist-return-version.service.test.js index b375e986e8..bee0b1eeb1 100644 --- a/test/services/return-requirements/persist-return-version.service.test.js +++ b/test/services/return-requirements/setup/check/persist-return-version.service.test.js @@ -8,16 +8,16 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const { generateUUID } = require('../../../app/lib/general.lib.js') -const ReturnVersionModel = require('../../../app/models/return-version.model.js') -const ReturnRequirementModel = require('../../../app/models/return-requirement.model.js') -const ReturnRequirementPointModel = require('../../../app/models/return-requirement-point.model.js') -const ReturnRequirementPurposeModel = require('../../../app/models/return-requirement-purpose.model.js') +const { generateUUID } = require('../../../../../app/lib/general.lib.js') +const ReturnVersionModel = require('../../../../../app/models/return-version.model.js') +const ReturnRequirementModel = require('../../../../../app/models/return-requirement.model.js') +const ReturnRequirementPointModel = require('../../../../../app/models/return-requirement-point.model.js') +const ReturnRequirementPurposeModel = require('../../../../../app/models/return-requirement-purpose.model.js') // Thing under test -const PersistReturnVersionService = require('../../../app/services/return-requirements/persist-return-version.service.js') +const PersistReturnVersionService = require('../../../../../app/services/return-requirements/setup/check/persist-return-version.service.js') -describe('Persist Return Version service', () => { +describe('Return Requirements Setup - Persist Return Version service', () => { describe('when called with data to persist', () => { let licenceId let returnVersionData diff --git a/test/services/return-requirements/process-existing-return-versions.service.test.js b/test/services/return-requirements/setup/check/process-existing-return-versions.service.test.js similarity index 88% rename from test/services/return-requirements/process-existing-return-versions.service.test.js rename to test/services/return-requirements/setup/check/process-existing-return-versions.service.test.js index ffd249c73d..9be1dd9a1e 100644 --- a/test/services/return-requirements/process-existing-return-versions.service.test.js +++ b/test/services/return-requirements/setup/check/process-existing-return-versions.service.test.js @@ -8,14 +8,14 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const { generateUUID } = require('../../../app/lib/general.lib.js') -const ReturnVersionHelper = require('../../support/helpers/return-version.helper.js') -const ReturnVersionModel = require('../../../app/models/return-version.model.js') +const { generateUUID } = require('../../../../../app/lib/general.lib.js') +const ReturnVersionHelper = require('../../../../support/helpers/return-version.helper.js') +const ReturnVersionModel = require('../../../../../app/models/return-version.model.js') // Thing under test -const ProcessExistingReturnVersionsService = require('../../../app/services/return-requirements/process-existing-return-versions.service.js') +const ProcessExistingReturnVersionsService = require('../../../../../app/services/return-requirements/setup/check/process-existing-return-versions.service.js') -describe('Process Existing Return Versions service', () => { +describe('Return Requirements Setup - Process Existing Return Versions service', () => { let existingReturnVersionId let licenceId let newVersionStartDate diff --git a/test/services/return-requirements/submit-check.service.test.js b/test/services/return-requirements/setup/check/submit-check.service.test.js similarity index 75% rename from test/services/return-requirements/submit-check.service.test.js rename to test/services/return-requirements/setup/check/submit-check.service.test.js index e5646ddf76..ef4de08757 100644 --- a/test/services/return-requirements/submit-check.service.test.js +++ b/test/services/return-requirements/setup/check/submit-check.service.test.js @@ -9,16 +9,16 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../../support/helpers/session.helper.js') // Things we need to stub -const GenerateReturnVersionService = require('../../../app/services/return-requirements/generate-return-version.service.js') -const PersistReturnVersionService = require('../../../app/services/return-requirements/persist-return-version.service.js') +const GenerateReturnVersionService = require('../../../../../app/services/return-requirements/setup/check/generate-return-version.service.js') +const PersistReturnVersionService = require('../../../../../app/services/return-requirements/setup/check/persist-return-version.service.js') // Thing under test -const SubmitCheckService = require('../../../app/services/return-requirements/submit-check.service.js') +const SubmitCheckService = require('../../../../../app/services/return-requirements/setup/check/submit-check.service.js') -describe('Return Requirements - Submit Check service', () => { +describe('Return Requirements Setup - Submit Check service', () => { let session let sessionId diff --git a/test/services/return-requirements/delete-note.service.test.js b/test/services/return-requirements/setup/delete-note.service.test.js similarity index 86% rename from test/services/return-requirements/delete-note.service.test.js rename to test/services/return-requirements/setup/delete-note.service.test.js index b568af55fe..387e69d544 100644 --- a/test/services/return-requirements/delete-note.service.test.js +++ b/test/services/return-requirements/setup/delete-note.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const DeleteNoteService = require('../../../app/services/return-requirements/delete-note.service.js') +const DeleteNoteService = require('../../../../app/services/return-requirements/setup/delete-note.service.js') -describe('Return Requirements - Delete Note service', () => { +describe('Return Requirements Setup - Delete Note service', () => { let session let yarStub diff --git a/test/services/return-requirements/existing.service.test.js b/test/services/return-requirements/setup/existing.service.test.js similarity index 86% rename from test/services/return-requirements/existing.service.test.js rename to test/services/return-requirements/setup/existing.service.test.js index 9b858d9093..f9cd164357 100644 --- a/test/services/return-requirements/existing.service.test.js +++ b/test/services/return-requirements/setup/existing.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const ExistingService = require('../../../app/services/return-requirements/existing.service.js') +const ExistingService = require('../../../../app/services/return-requirements/setup/existing.service.js') -describe('Return Requirements - Existing service', () => { +describe('Return Requirements Setup - Existing service', () => { let session beforeEach(async () => { diff --git a/test/services/return-requirements/fetch-existing-requirements.test.js b/test/services/return-requirements/setup/fetch-existing-requirements.test.js similarity index 91% rename from test/services/return-requirements/fetch-existing-requirements.test.js rename to test/services/return-requirements/setup/fetch-existing-requirements.test.js index 21936fc902..c5b3dd2f2d 100644 --- a/test/services/return-requirements/fetch-existing-requirements.test.js +++ b/test/services/return-requirements/setup/fetch-existing-requirements.test.js @@ -8,12 +8,12 @@ const { describe, it, before } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const RequirementsForReturnsSeeder = require('../../support/seeders/requirements-for-returns.seeder.js') +const RequirementsForReturnsSeeder = require('../../../support/seeders/requirements-for-returns.seeder.js') // Thing under test -const FetchExistingRequirementsService = require('../../../app/services/return-requirements/fetch-existing-requirements.js') +const FetchExistingRequirementsService = require('../../../../app/services/return-requirements/setup/fetch-existing-requirements.js') -describe('Return Requirements - Fetch Existing Requirements service', () => { +describe('Return Requirements Setup - Fetch Existing Requirements service', () => { let returnVersion describe('when a matching return version exists', () => { diff --git a/test/services/return-requirements/fetch-points.service.test.js b/test/services/return-requirements/setup/fetch-points.service.test.js similarity index 73% rename from test/services/return-requirements/fetch-points.service.test.js rename to test/services/return-requirements/setup/fetch-points.service.test.js index 9b02bcb283..a203680163 100644 --- a/test/services/return-requirements/fetch-points.service.test.js +++ b/test/services/return-requirements/setup/fetch-points.service.test.js @@ -8,17 +8,17 @@ const { describe, it, before } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const LicenceHelper = require('../../support/helpers/licence.helper.js') -const LicenceVersionHelper = require('../../support/helpers/licence-version.helper.js') -const LicenceVersionPurposeHelper = require('../../support/helpers/licence-version-purpose.helper.js') -const LicenceVersionPurposePointHelper = require('../../support/helpers/licence-version-purpose-point.helper.js') -const PointHelper = require('../../support/helpers/point.helper.js') -const RegionHelper = require('../../support/helpers/region.helper.js') +const LicenceHelper = require('../../../support/helpers/licence.helper.js') +const LicenceVersionHelper = require('../../../support/helpers/licence-version.helper.js') +const LicenceVersionPurposeHelper = require('../../../support/helpers/licence-version-purpose.helper.js') +const LicenceVersionPurposePointHelper = require('../../../support/helpers/licence-version-purpose-point.helper.js') +const PointHelper = require('../../../support/helpers/point.helper.js') +const RegionHelper = require('../../../support/helpers/region.helper.js') // Thing under test -const FetchPointsService = require('../../../app/services/return-requirements/fetch-points.service.js') +const FetchPointsService = require('../../../../app/services/return-requirements/setup/fetch-points.service.js') -describe('Return Requirements - Fetch Points service', () => { +describe('Return Requirements Setup - Fetch Points service', () => { let licence let points diff --git a/test/services/return-requirements/fetch-purposes.service.test.js b/test/services/return-requirements/setup/fetch-purposes.service.test.js similarity index 84% rename from test/services/return-requirements/fetch-purposes.service.test.js rename to test/services/return-requirements/setup/fetch-purposes.service.test.js index 1c0e9925e6..6a03fc96ee 100644 --- a/test/services/return-requirements/fetch-purposes.service.test.js +++ b/test/services/return-requirements/setup/fetch-purposes.service.test.js @@ -8,14 +8,14 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const LicenceVersionHelper = require('../../support/helpers/licence-version.helper.js') -const LicenceVersionPurposeHelper = require('../../support/helpers/licence-version-purpose.helper.js') -const PurposeHelper = require('../../support/helpers/purpose.helper.js') +const LicenceVersionHelper = require('../../../support/helpers/licence-version.helper.js') +const LicenceVersionPurposeHelper = require('../../../support/helpers/licence-version-purpose.helper.js') +const PurposeHelper = require('../../../support/helpers/purpose.helper.js') // Thing under test -const FetchPurposesService = require('../../../app/services/return-requirements/fetch-purposes.service.js') +const FetchPurposesService = require('../../../../app/services/return-requirements/setup/fetch-purposes.service.js') -describe('Return Requirements - Fetch Purposes service', () => { +describe('Return Requirements Setup - Fetch Purposes service', () => { let licenceVersion let purposes diff --git a/test/services/return-requirements/frequency-collected.service.test.js b/test/services/return-requirements/setup/frequency-collected.service.test.js similarity index 82% rename from test/services/return-requirements/frequency-collected.service.test.js rename to test/services/return-requirements/setup/frequency-collected.service.test.js index 56f990d1d0..34a7f95422 100644 --- a/test/services/return-requirements/frequency-collected.service.test.js +++ b/test/services/return-requirements/setup/frequency-collected.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const FrequencyCollectedService = require('../../../app/services/return-requirements/frequency-collected.service.js') +const FrequencyCollectedService = require('../../../../app/services/return-requirements/setup/frequency-collected.service.js') -describe('Return Requirements - Frequency Collected service', () => { +describe('Return Requirements Setup - Frequency Collected service', () => { const requirementIndex = 0 let session @@ -57,7 +57,7 @@ describe('Return Requirements - Frequency Collected service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select how often readings or volumes are collected', - backLink: `/system/return-requirements/${session.id}/site-description/0`, + backLink: `/system/return-requirements/setup/${session.id}/site-description/0`, frequencyCollected: null, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC' diff --git a/test/services/return-requirements/frequency-reported.service.test.js b/test/services/return-requirements/setup/frequency-reported.service.test.js similarity index 82% rename from test/services/return-requirements/frequency-reported.service.test.js rename to test/services/return-requirements/setup/frequency-reported.service.test.js index 4fdbceca63..46704e7bb6 100644 --- a/test/services/return-requirements/frequency-reported.service.test.js +++ b/test/services/return-requirements/setup/frequency-reported.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const FrequencyReportedService = require('../../../app/services/return-requirements/frequency-reported.service.js') +const FrequencyReportedService = require('../../../../app/services/return-requirements/setup/frequency-reported.service.js') -describe('Return Requirements - Frequency Reported service', () => { +describe('Return Requirements Setup - Frequency Reported service', () => { const requirementIndex = 0 let session @@ -57,7 +57,7 @@ describe('Return Requirements - Frequency Reported service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select how often readings or volumes are reported', - backLink: `/system/return-requirements/${session.id}/frequency-collected/0`, + backLink: `/system/return-requirements/setup/${session.id}/frequency-collected/0`, frequencyReported: null, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC' diff --git a/test/services/return-requirements/generate-from-existing-requirements.service.test.js b/test/services/return-requirements/setup/generate-from-existing-requirements.service.test.js similarity index 96% rename from test/services/return-requirements/generate-from-existing-requirements.service.test.js rename to test/services/return-requirements/setup/generate-from-existing-requirements.service.test.js index ca7b241a49..1e274f4c9c 100644 --- a/test/services/return-requirements/generate-from-existing-requirements.service.test.js +++ b/test/services/return-requirements/setup/generate-from-existing-requirements.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Things we need to stub -const FetchExistingRequirementsService = require('../../../app/services/return-requirements/fetch-existing-requirements.js') +const FetchExistingRequirementsService = require('../../../../app/services/return-requirements/setup/fetch-existing-requirements.js') // Thing under test -const GenerateFromExistingRequirementsService = require('../../../app/services/return-requirements/generate-from-existing-requirements.service.js') +const GenerateFromExistingRequirementsService = require('../../../../app/services/return-requirements/setup/generate-from-existing-requirements.service.js') -describe('Return Requirements - Generate From Existing Requirements service', () => { +describe('Return Requirements Setup - Generate From Existing Requirements service', () => { let returnVersion afterEach(() => { diff --git a/test/services/return-requirements/initiate-session.service.test.js b/test/services/return-requirements/setup/initiate-session.service.test.js similarity index 87% rename from test/services/return-requirements/initiate-session.service.test.js rename to test/services/return-requirements/setup/initiate-session.service.test.js index 061a5cdf90..e1d0135aec 100644 --- a/test/services/return-requirements/initiate-session.service.test.js +++ b/test/services/return-requirements/setup/initiate-session.service.test.js @@ -8,18 +8,18 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const LicenceHelper = require('../../support/helpers/licence.helper.js') -const LicenceHolderSeeder = require('../../support/seeders/licence-holder.seeder.js') -const LicenceVersionHelper = require('../../support/helpers/licence-version.helper.js') -const ModLogHelper = require('../../support/helpers/mod-log.helper.js') -const ReturnRequirementHelper = require('../../support/helpers/return-requirement.helper.js') -const ReturnVersionHelper = require('../../support/helpers/return-version.helper.js') -const { generateLicenceRef } = require('../../support/helpers/licence.helper.js') +const LicenceHelper = require('../../../support/helpers/licence.helper.js') +const LicenceHolderSeeder = require('../../../support/seeders/licence-holder.seeder.js') +const LicenceVersionHelper = require('../../../support/helpers/licence-version.helper.js') +const ModLogHelper = require('../../../support/helpers/mod-log.helper.js') +const ReturnRequirementHelper = require('../../../support/helpers/return-requirement.helper.js') +const ReturnVersionHelper = require('../../../support/helpers/return-version.helper.js') +const { generateLicenceRef } = require('../../../support/helpers/licence.helper.js') // Thing under test -const InitiateSessionService = require('../../../app/services/return-requirements/initiate-session.service.js') +const InitiateSessionService = require('../../../../app/services/return-requirements/setup/initiate-session.service.js') -describe('Return Requirements - Initiate Session service', () => { +describe('Return Requirements Setup - Initiate Session service', () => { let journey let licence let licenceRef diff --git a/test/services/return-requirements/method/fetch-abstraction-data.service.test.js b/test/services/return-requirements/setup/method/fetch-abstraction-data.service.test.js similarity index 93% rename from test/services/return-requirements/method/fetch-abstraction-data.service.test.js rename to test/services/return-requirements/setup/method/fetch-abstraction-data.service.test.js index c14934fc85..8f983f6789 100644 --- a/test/services/return-requirements/method/fetch-abstraction-data.service.test.js +++ b/test/services/return-requirements/setup/method/fetch-abstraction-data.service.test.js @@ -8,11 +8,11 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const LicenceAbstractionDataSeeder = require('../../../support/seeders/licence-abstraction-data.seeder.js') -const LicenceAgreementModel = require('../../../../app/models/licence-agreement.model.js') +const LicenceAbstractionDataSeeder = require('../../../../support/seeders/licence-abstraction-data.seeder.js') +const LicenceAgreementModel = require('../../../../../app/models/licence-agreement.model.js') // Thing under test -const FetchAbstractionDataService = require('../../../../app/services/return-requirements/method/fetch-abstraction-data.service.js') +const FetchAbstractionDataService = require('../../../../../app/services/return-requirements/setup/method/fetch-abstraction-data.service.js') describe('Return Requirements - Fetch Abstraction Data service', () => { let seedData diff --git a/test/services/return-requirements/method/generate-from-abstraction-data.service.test.js b/test/services/return-requirements/setup/method/generate-from-abstraction-data.service.test.js similarity index 95% rename from test/services/return-requirements/method/generate-from-abstraction-data.service.test.js rename to test/services/return-requirements/setup/method/generate-from-abstraction-data.service.test.js index b3cd0f9599..b81dd6655a 100644 --- a/test/services/return-requirements/method/generate-from-abstraction-data.service.test.js +++ b/test/services/return-requirements/setup/method/generate-from-abstraction-data.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const FetchAbstractionDataService = require('../../../../app/services/return-requirements/method/fetch-abstraction-data.service.js') -const LicenceModel = require('../../../../app/models/licence.model.js') -const LicenceVersionPurposeModel = require('../../../../app/models/licence-version-purpose.model.js') +const FetchAbstractionDataService = require('../../../../../app/services/return-requirements/setup/method/fetch-abstraction-data.service.js') +const LicenceModel = require('../../../../../app/models/licence.model.js') +const LicenceVersionPurposeModel = require('../../../../../app/models/licence-version-purpose.model.js') // Thing under test -const GenerateFromAbstractionDataService = require('../../../../app/services/return-requirements/method/generate-from-abstraction-data.service.js') +const GenerateFromAbstractionDataService = require('../../../../../app/services/return-requirements/setup/method/generate-from-abstraction-data.service.js') describe('Return Requirements - Generate From Abstraction Data service', () => { const licenceId = 'af0e52a3-db43-4add-b388-1b2564a437c7' diff --git a/test/services/return-requirements/method/method.service.test.js b/test/services/return-requirements/setup/method/method.service.test.js similarity index 86% rename from test/services/return-requirements/method/method.service.test.js rename to test/services/return-requirements/setup/method/method.service.test.js index 0427f38475..338d028a7d 100644 --- a/test/services/return-requirements/method/method.service.test.js +++ b/test/services/return-requirements/setup/method/method.service.test.js @@ -8,10 +8,10 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../../support/helpers/session.helper.js') +const SessionHelper = require('../../../../support/helpers/session.helper.js') // Thing under test -const MethodService = require('../../../../app/services/return-requirements/method/method.service.js') +const MethodService = require('../../../../../app/services/return-requirements/setup/method/method.service.js') describe('Return Requirements - Method service', () => { let session @@ -54,7 +54,7 @@ describe('Return Requirements - Method service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'How do you want to set up the requirements for returns?', - backLink: `/system/return-requirements/${session.id}/reason`, + backLink: `/system/return-requirements/setup/${session.id}/reason`, displayCopyExisting: true, licenceRef: '01/ABC', method: null diff --git a/test/services/return-requirements/method/submit-method.service.test.js b/test/services/return-requirements/setup/method/submit-method.service.test.js similarity index 92% rename from test/services/return-requirements/method/submit-method.service.test.js rename to test/services/return-requirements/setup/method/submit-method.service.test.js index 53cb0a8394..784d68a0f9 100644 --- a/test/services/return-requirements/method/submit-method.service.test.js +++ b/test/services/return-requirements/setup/method/submit-method.service.test.js @@ -9,13 +9,13 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../../support/helpers/session.helper.js') +const SessionHelper = require('../../../../support/helpers/session.helper.js') // Things we need to stub -const GenerateFromAbstractionDataService = require('../../../../app/services/return-requirements/method/generate-from-abstraction-data.service.js') +const GenerateFromAbstractionDataService = require('../../../../../app/services/return-requirements/setup/method/generate-from-abstraction-data.service.js') // Thing under test -const SubmitMethodService = require('../../../../app/services/return-requirements/method/submit-method.service.js') +const SubmitMethodService = require('../../../../../app/services/return-requirements/setup/method/submit-method.service.js') describe('Return Requirements - Submit Method service', () => { let payload @@ -124,7 +124,7 @@ describe('Return Requirements - Submit Method service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'How do you want to set up the requirements for returns?', - backLink: `/system/return-requirements/${session.id}/reason`, + backLink: `/system/return-requirements/setup/${session.id}/reason`, displayCopyExisting: true, licenceRef: '01/ABC', method: null diff --git a/test/services/return-requirements/no-returns-required.service.test.js b/test/services/return-requirements/setup/no-returns-required.service.test.js similarity index 81% rename from test/services/return-requirements/no-returns-required.service.test.js rename to test/services/return-requirements/setup/no-returns-required.service.test.js index 306eea29e7..41353217d9 100644 --- a/test/services/return-requirements/no-returns-required.service.test.js +++ b/test/services/return-requirements/setup/no-returns-required.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const NoReturnsRequiredService = require('../../../app/services/return-requirements/no-returns-required.service.js') +const NoReturnsRequiredService = require('../../../../app/services/return-requirements/setup/no-returns-required.service.js') -describe('Return Requirements - No Returns Required service', () => { +describe('Return Requirements Setup - No Returns Required service', () => { let session beforeEach(async () => { @@ -54,7 +54,7 @@ describe('Return Requirements - No Returns Required service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Why are no returns required?', - backLink: `/system/return-requirements/${session.id}/start-date`, + backLink: `/system/return-requirements/setup/${session.id}/start-date`, licenceRef: '01/ABC', reason: null }, { skip: ['sessionId'] }) diff --git a/test/services/return-requirements/note.service.test.js b/test/services/return-requirements/setup/note.service.test.js similarity index 83% rename from test/services/return-requirements/note.service.test.js rename to test/services/return-requirements/setup/note.service.test.js index 682586bfa3..b36ec66217 100644 --- a/test/services/return-requirements/note.service.test.js +++ b/test/services/return-requirements/setup/note.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const NoteService = require('../../../app/services/return-requirements/note.service.js') +const NoteService = require('../../../../app/services/return-requirements/setup/note.service.js') -describe('Return Requirements - Note service', () => { +describe('Return Requirements Setup - Note service', () => { let session beforeEach(async () => { @@ -55,7 +55,7 @@ describe('Return Requirements - Note service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Add a note', - backLink: `/system/return-requirements/${session.id}/check`, + backLink: `/system/return-requirements/setup/${session.id}/check`, licenceRef: '01/ABC', note: null }, { skip: ['sessionId'] }) diff --git a/test/services/return-requirements/points.service.test.js b/test/services/return-requirements/setup/points.service.test.js similarity index 82% rename from test/services/return-requirements/points.service.test.js rename to test/services/return-requirements/setup/points.service.test.js index a78455d46f..2a116236b4 100644 --- a/test/services/return-requirements/points.service.test.js +++ b/test/services/return-requirements/setup/points.service.test.js @@ -9,16 +9,16 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const PointModel = require('../../../app/models/point.model.js') -const SessionHelper = require('../../support/helpers/session.helper.js') +const PointModel = require('../../../../app/models/point.model.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Things we need to stub -const FetchPointsService = require('../../../app/services/return-requirements/fetch-points.service.js') +const FetchPointsService = require('../../../../app/services/return-requirements/setup/fetch-points.service.js') // Thing under test -const SelectPointsService = require('../../../app/services/return-requirements/points.service.js') +const SelectPointsService = require('../../../../app/services/return-requirements/setup/points.service.js') -describe('Return Requirements - Points service', () => { +describe('Return Requirements Setup - Points service', () => { const requirementIndex = 0 let session @@ -77,7 +77,7 @@ describe('Return Requirements - Points service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select the points for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/purpose/0`, + backLink: `/system/return-requirements/setup/${session.id}/purpose/0`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licencePoints: [ { diff --git a/test/services/return-requirements/purpose.service.test.js b/test/services/return-requirements/setup/purpose.service.test.js similarity index 84% rename from test/services/return-requirements/purpose.service.test.js rename to test/services/return-requirements/setup/purpose.service.test.js index ceb3974ebe..4db524bc8a 100644 --- a/test/services/return-requirements/purpose.service.test.js +++ b/test/services/return-requirements/setup/purpose.service.test.js @@ -9,15 +9,15 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Things we need to stub -const FetchPurposesService = require('../../../app/services/return-requirements/fetch-purposes.service.js') +const FetchPurposesService = require('../../../../app/services/return-requirements/setup/fetch-purposes.service.js') // Thing under test -const PurposeService = require('../../../app/services/return-requirements/purpose.service.js') +const PurposeService = require('../../../../app/services/return-requirements/setup/purpose.service.js') -describe('Return Requirements - Purpose service', () => { +describe('Return Requirements Setup - Purpose service', () => { const requirementIndex = 0 let session @@ -70,7 +70,7 @@ describe('Return Requirements - Purpose service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select the purpose for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/method`, + backLink: `/system/return-requirements/setup/${session.id}/method`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', purposes: [ diff --git a/test/services/return-requirements/reason.service.test.js b/test/services/return-requirements/setup/reason.service.test.js similarity index 82% rename from test/services/return-requirements/reason.service.test.js rename to test/services/return-requirements/setup/reason.service.test.js index 2c86b4fbdd..7a97a6f4ea 100644 --- a/test/services/return-requirements/reason.service.test.js +++ b/test/services/return-requirements/setup/reason.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const ReasonService = require('../../../app/services/return-requirements/reason.service.js') +const ReasonService = require('../../../../app/services/return-requirements/setup/reason.service.js') -describe('Return Requirements - Reason service', () => { +describe('Return Requirements Setup - Reason service', () => { let session beforeEach(async () => { @@ -54,7 +54,7 @@ describe('Return Requirements - Reason service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select the reason for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/start-date`, + backLink: `/system/return-requirements/setup/${session.id}/start-date`, licenceRef: '01/ABC', reason: null }, { skip: ['sessionId'] }) diff --git a/test/services/return-requirements/remove.service.test.js b/test/services/return-requirements/setup/remove.service.test.js similarity index 86% rename from test/services/return-requirements/remove.service.test.js rename to test/services/return-requirements/setup/remove.service.test.js index fc9774a097..b82e76c542 100644 --- a/test/services/return-requirements/remove.service.test.js +++ b/test/services/return-requirements/setup/remove.service.test.js @@ -8,13 +8,13 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') -const { generateUUID } = require('../../../app/lib/general.lib.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') +const { generateUUID } = require('../../../../app/lib/general.lib.js') // Thing under test -const RemoveService = require('../../../app/services/return-requirements/remove.service.js') +const RemoveService = require('../../../../app/services/return-requirements/setup/remove.service.js') -describe('Return Requirements - Remove service', () => { +describe('Return Requirements Setup - Remove service', () => { const requirementIndex = 0 let session @@ -73,7 +73,7 @@ describe('Return Requirements - Remove service', () => { expect(result).to.equal({ activeNavBar: 'search', - backLink: `/system/return-requirements/${session.id}/check`, + backLink: `/system/return-requirements/setup/${session.id}/check`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', pageTitle: 'You are about to remove these requirements for returns', diff --git a/test/services/return-requirements/returns-cycle.service.test.js b/test/services/return-requirements/setup/returns-cycle.service.test.js similarity index 83% rename from test/services/return-requirements/returns-cycle.service.test.js rename to test/services/return-requirements/setup/returns-cycle.service.test.js index c08f03538e..18ba4a04af 100644 --- a/test/services/return-requirements/returns-cycle.service.test.js +++ b/test/services/return-requirements/setup/returns-cycle.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const ReturnsCycleService = require('../../../app/services/return-requirements/returns-cycle.service.js') +const ReturnsCycleService = require('../../../../app/services/return-requirements/setup/returns-cycle.service.js') -describe('Return Requirements - Returns Cycle service', () => { +describe('Return Requirements Setup - Returns Cycle service', () => { const requirementIndex = 0 let session @@ -57,7 +57,7 @@ describe('Return Requirements - Returns Cycle service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select the returns cycle for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/abstraction-period/0`, + backLink: `/system/return-requirements/setup/${session.id}/abstraction-period/0`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', returnsCycle: null diff --git a/test/services/return-requirements/site-description.service.test.js b/test/services/return-requirements/setup/site-description.service.test.js similarity index 83% rename from test/services/return-requirements/site-description.service.test.js rename to test/services/return-requirements/setup/site-description.service.test.js index e960f0644e..d795b92c82 100644 --- a/test/services/return-requirements/site-description.service.test.js +++ b/test/services/return-requirements/setup/site-description.service.test.js @@ -8,12 +8,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Things under test -const SiteDescriptionService = require('../../../app/services/return-requirements/site-description.service.js') +const SiteDescriptionService = require('../../../../app/services/return-requirements/setup/site-description.service.js') -describe('Return Requirements - Site Description service', () => { +describe('Return Requirements Setup - Site Description service', () => { const requirementIndex = 0 let session @@ -57,7 +57,7 @@ describe('Return Requirements - Site Description service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Enter a site description for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/returns-cycle/0`, + backLink: `/system/return-requirements/setup/${session.id}/returns-cycle/0`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', siteDescription: null diff --git a/test/services/return-requirements/start-date.service.test.js b/test/services/return-requirements/setup/start-date.service.test.js similarity index 85% rename from test/services/return-requirements/start-date.service.test.js rename to test/services/return-requirements/setup/start-date.service.test.js index b946b9eaa3..5700a9eb9c 100644 --- a/test/services/return-requirements/start-date.service.test.js +++ b/test/services/return-requirements/setup/start-date.service.test.js @@ -9,13 +9,13 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const FeatureFlagsConfig = require('../../../config/feature-flags.config.js') -const SessionHelper = require('../../support/helpers/session.helper.js') +const FeatureFlagsConfig = require('../../../../config/feature-flags.config.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const StartDateService = require('../../../app/services/return-requirements/start-date.service.js') +const StartDateService = require('../../../../app/services/return-requirements/setup/start-date.service.js') -describe('Return Requirements - Start Date service', () => { +describe('Return Requirements Setup - Start Date service', () => { let session beforeEach(async () => { diff --git a/test/services/return-requirements/submit-abstraction-period.service.test.js b/test/services/return-requirements/setup/submit-abstraction-period.service.test.js similarity index 95% rename from test/services/return-requirements/submit-abstraction-period.service.test.js rename to test/services/return-requirements/setup/submit-abstraction-period.service.test.js index 34ab372fba..1b26406888 100644 --- a/test/services/return-requirements/submit-abstraction-period.service.test.js +++ b/test/services/return-requirements/setup/submit-abstraction-period.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const SubmitAbstractionPeriodService = require('../../../app/services/return-requirements/submit-abstraction-period.service.js') +const SubmitAbstractionPeriodService = require('../../../../app/services/return-requirements/setup/submit-abstraction-period.service.js') -describe('Return Requirements - Submit Abstraction Period service', () => { +describe('Return Requirements Setup - Submit Abstraction Period service', () => { const requirementIndex = 0 let payload @@ -122,7 +122,7 @@ describe('Return Requirements - Submit Abstraction Period service', () => { activeNavBar: 'search', pageTitle: 'Enter the abstraction period for the requirements for returns', abstractionPeriod: null, - backLink: `/system/return-requirements/${session.id}/points/0`, + backLink: `/system/return-requirements/setup/${session.id}/points/0`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC' }, { skip: ['sessionId', 'error'] }) diff --git a/test/services/return-requirements/submit-additional-submission-options.service.test.js b/test/services/return-requirements/setup/submit-additional-submission-options.service.test.js similarity index 90% rename from test/services/return-requirements/submit-additional-submission-options.service.test.js rename to test/services/return-requirements/setup/submit-additional-submission-options.service.test.js index 03e2226ef4..a88ccaf860 100644 --- a/test/services/return-requirements/submit-additional-submission-options.service.test.js +++ b/test/services/return-requirements/setup/submit-additional-submission-options.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const SubmitAdditionalSubmissionOptionsService = require('../../../app/services/return-requirements/submit-additional-submission-options.service.js') +const SubmitAdditionalSubmissionOptionsService = require('../../../../app/services/return-requirements/setup/submit-additional-submission-options.service.js') -describe('Return Requirements - Submit Additional Submission Options service', () => { +describe('Return Requirements Setup - Submit Additional Submission Options service', () => { let payload let session let yarStub @@ -87,7 +87,7 @@ describe('Return Requirements - Submit Additional Submission Options service', ( expect(result).to.equal({ activeNavBar: 'search', - backLink: `/system/return-requirements/${session.id}/check`, + backLink: `/system/return-requirements/setup/${session.id}/check`, pageTitle: 'Select any additional submission options for the return requirements', licenceRef: '01/ABC', additionalSubmissionOptions: [undefined] diff --git a/test/services/return-requirements/submit-agreements-exceptions.service.test.js b/test/services/return-requirements/setup/submit-agreements-exceptions.service.test.js similarity index 92% rename from test/services/return-requirements/submit-agreements-exceptions.service.test.js rename to test/services/return-requirements/setup/submit-agreements-exceptions.service.test.js index 15f7337d8c..59696d2752 100644 --- a/test/services/return-requirements/submit-agreements-exceptions.service.test.js +++ b/test/services/return-requirements/setup/submit-agreements-exceptions.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const SubmitAgreementsExceptionsService = require('../../../app/services/return-requirements/submit-agreements-exceptions.service.js') +const SubmitAgreementsExceptionsService = require('../../../../app/services/return-requirements/setup/submit-agreements-exceptions.service.js') -describe('Return Requirements - Submit Agreements and Exceptions service', () => { +describe('Return Requirements Setup - Submit Agreements and Exceptions service', () => { const requirementIndex = 0 let payload @@ -132,7 +132,7 @@ describe('Return Requirements - Submit Agreements and Exceptions service', () => activeNavBar: 'search', pageTitle: 'Select agreements and exceptions for the requirements for returns', agreementsExceptions: null, - backLink: `/system/return-requirements/${session.id}/frequency-reported/0`, + backLink: `/system/return-requirements/setup/${session.id}/frequency-reported/0`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC' }, { skip: ['sessionId', 'error'] }) diff --git a/test/services/return-requirements/submit-cancel.service.test.js b/test/services/return-requirements/setup/submit-cancel.service.test.js similarity index 86% rename from test/services/return-requirements/submit-cancel.service.test.js rename to test/services/return-requirements/setup/submit-cancel.service.test.js index d0bbbaedf6..28d353ad31 100644 --- a/test/services/return-requirements/submit-cancel.service.test.js +++ b/test/services/return-requirements/setup/submit-cancel.service.test.js @@ -8,13 +8,13 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') -const { generateUUID } = require('../../../app/lib/general.lib.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') +const { generateUUID } = require('../../../../app/lib/general.lib.js') // Thing under test -const SubmitCancelService = require('../../../app/services/return-requirements/submit-cancel.service.js') +const SubmitCancelService = require('../../../../app/services/return-requirements/setup/submit-cancel.service.js') -describe('Return Requirements - Submit Cancel service', () => { +describe('Return Requirements Setup - Submit Cancel service', () => { let session beforeEach(async () => { diff --git a/test/services/return-requirements/submit-existing.service.test.js b/test/services/return-requirements/setup/submit-existing.service.test.js similarity index 90% rename from test/services/return-requirements/submit-existing.service.test.js rename to test/services/return-requirements/setup/submit-existing.service.test.js index cc11b3fa4c..e36d36a861 100644 --- a/test/services/return-requirements/submit-existing.service.test.js +++ b/test/services/return-requirements/setup/submit-existing.service.test.js @@ -9,15 +9,15 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Things we need to stub -const GenerateFromExistingRequirementsService = require('../../../app/services/return-requirements/generate-from-existing-requirements.service.js') +const GenerateFromExistingRequirementsService = require('../../../../app/services/return-requirements/setup/generate-from-existing-requirements.service.js') // Thing under test -const SubmitExistingService = require('../../../app/services/return-requirements/submit-existing.service.js') +const SubmitExistingService = require('../../../../app/services/return-requirements/setup/submit-existing.service.js') -describe('Return Requirements - Submit Existing service', () => { +describe('Return Requirements Setup - Submit Existing service', () => { let payload let session let sessionData diff --git a/test/services/return-requirements/submit-frequency-collected.service.test.js b/test/services/return-requirements/setup/submit-frequency-collected.service.test.js similarity index 91% rename from test/services/return-requirements/submit-frequency-collected.service.test.js rename to test/services/return-requirements/setup/submit-frequency-collected.service.test.js index 687542aa5b..31ca9ae840 100644 --- a/test/services/return-requirements/submit-frequency-collected.service.test.js +++ b/test/services/return-requirements/setup/submit-frequency-collected.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const SubmitFrequencyCollectedService = require('../../../app/services/return-requirements/submit-frequency-collected.service.js') +const SubmitFrequencyCollectedService = require('../../../../app/services/return-requirements/setup/submit-frequency-collected.service.js') -describe('Return Requirements - Submit Frequency Collected service', () => { +describe('Return Requirements Setup - Submit Frequency Collected service', () => { const requirementIndex = 0 let payload @@ -113,7 +113,7 @@ describe('Return Requirements - Submit Frequency Collected service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select how often readings or volumes are collected', - backLink: `/system/return-requirements/${session.id}/site-description/0`, + backLink: `/system/return-requirements/setup/${session.id}/site-description/0`, frequencyCollected: null, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC' diff --git a/test/services/return-requirements/submit-frequency-reported.service.test.js b/test/services/return-requirements/setup/submit-frequency-reported.service.test.js similarity index 91% rename from test/services/return-requirements/submit-frequency-reported.service.test.js rename to test/services/return-requirements/setup/submit-frequency-reported.service.test.js index 0d31d6d62d..b18afc8a63 100644 --- a/test/services/return-requirements/submit-frequency-reported.service.test.js +++ b/test/services/return-requirements/setup/submit-frequency-reported.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const SubmitFrequencyReportedService = require('../../../app/services/return-requirements/submit-frequency-reported.service.js') +const SubmitFrequencyReportedService = require('../../../../app/services/return-requirements/setup/submit-frequency-reported.service.js') -describe('Return Requirements - Submit Frequency Reported service', () => { +describe('Return Requirements Setup - Submit Frequency Reported service', () => { const requirementIndex = 0 let payload @@ -113,7 +113,7 @@ describe('Return Requirements - Submit Frequency Reported service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select how often readings or volumes are reported', - backLink: `/system/return-requirements/${session.id}/frequency-collected/0`, + backLink: `/system/return-requirements/setup/${session.id}/frequency-collected/0`, frequencyReported: null, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC' diff --git a/test/services/return-requirements/submit-no-returns-required.service.test.js b/test/services/return-requirements/setup/submit-no-returns-required.service.test.js similarity index 90% rename from test/services/return-requirements/submit-no-returns-required.service.test.js rename to test/services/return-requirements/setup/submit-no-returns-required.service.test.js index 2666fb5169..1aecc6a5e8 100644 --- a/test/services/return-requirements/submit-no-returns-required.service.test.js +++ b/test/services/return-requirements/setup/submit-no-returns-required.service.test.js @@ -9,12 +9,12 @@ const { describe, it, afterEach, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const SubmitNoReturnsRequiredService = require('../../../app/services/return-requirements/submit-no-returns-required.service.js') +const SubmitNoReturnsRequiredService = require('../../../../app/services/return-requirements/setup/submit-no-returns-required.service.js') -describe('Return Requirements - Submit No Returns Required service', () => { +describe('Return Requirements Setup - Submit No Returns Required service', () => { let payload let session let sessionData @@ -111,7 +111,7 @@ describe('Return Requirements - Submit No Returns Required service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Why are no returns required?', - backLink: `/system/return-requirements/${session.id}/start-date`, + backLink: `/system/return-requirements/setup/${session.id}/start-date`, licenceRef: '01/ABC', reason: null }, { skip: ['sessionId', 'error'] }) diff --git a/test/services/return-requirements/submit-note.service.test.js b/test/services/return-requirements/setup/submit-note.service.test.js similarity index 95% rename from test/services/return-requirements/submit-note.service.test.js rename to test/services/return-requirements/setup/submit-note.service.test.js index fc292703c1..9b78f6b0ac 100644 --- a/test/services/return-requirements/submit-note.service.test.js +++ b/test/services/return-requirements/setup/submit-note.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const SubmitNoteService = require('../../../app/services/return-requirements/submit-note.service.js') +const SubmitNoteService = require('../../../../app/services/return-requirements/setup/submit-note.service.js') -describe('Return Requirements - Submit Note service', () => { +describe('Return Requirements Setup - Submit Note service', () => { const user = { username: 'carol.shaw@atari.com' } let payload @@ -157,7 +157,7 @@ describe('Return Requirements - Submit Note service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Add a note', - backLink: `/system/return-requirements/${session.id}/check`, + backLink: `/system/return-requirements/setup/${session.id}/check`, licenceRef: '01/ABC', note: null }, { skip: ['sessionId', 'error'] }) diff --git a/test/services/return-requirements/submit-points.service.test.js b/test/services/return-requirements/setup/submit-points.service.test.js similarity index 89% rename from test/services/return-requirements/submit-points.service.test.js rename to test/services/return-requirements/setup/submit-points.service.test.js index efeea05450..7d1c466833 100644 --- a/test/services/return-requirements/submit-points.service.test.js +++ b/test/services/return-requirements/setup/submit-points.service.test.js @@ -9,16 +9,16 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const PointModel = require('../../../app/models/point.model.js') -const SessionHelper = require('../../support/helpers/session.helper.js') +const PointModel = require('../../../../app/models/point.model.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Things we need to stub -const FetchPointsService = require('../../../app/services/return-requirements/fetch-points.service.js') +const FetchPointsService = require('../../../../app/services/return-requirements/setup/fetch-points.service.js') // Thing under test -const SubmitPointsService = require('../../../app/services/return-requirements/submit-points.service.js') +const SubmitPointsService = require('../../../../app/services/return-requirements/setup/submit-points.service.js') -describe('Return Requirements - Submit Points service', () => { +describe('Return Requirements Setup - Submit Points service', () => { const requirementIndex = 0 let payload @@ -128,7 +128,7 @@ describe('Return Requirements - Submit Points service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select the points for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/purpose/0`, + backLink: `/system/return-requirements/setup/${session.id}/purpose/0`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licencePoints: [{ id: 'd03d7d7c-4e33-4b4d-ac9b-6ebac9a5e5f6', diff --git a/test/services/return-requirements/submit-purpose.service.test.js b/test/services/return-requirements/setup/submit-purpose.service.test.js similarity index 91% rename from test/services/return-requirements/submit-purpose.service.test.js rename to test/services/return-requirements/setup/submit-purpose.service.test.js index b0e57e489f..6a86246f47 100644 --- a/test/services/return-requirements/submit-purpose.service.test.js +++ b/test/services/return-requirements/setup/submit-purpose.service.test.js @@ -9,15 +9,15 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Things we need to stub -const FetchPurposesService = require('../../../app/services/return-requirements/fetch-purposes.service.js') +const FetchPurposesService = require('../../../../app/services/return-requirements/setup/fetch-purposes.service.js') // Thing under test -const SubmitPurposeService = require('../../../app/services/return-requirements/submit-purpose.service.js') +const SubmitPurposeService = require('../../../../app/services/return-requirements/setup/submit-purpose.service.js') -describe('Return Requirements - Submit Purpose service', () => { +describe('Return Requirements Setup - Submit Purpose service', () => { const requirementIndex = 0 let payload @@ -132,7 +132,7 @@ describe('Return Requirements - Submit Purpose service', () => { text: 'Select any purpose for the requirements for returns' }, pageTitle: 'Select the purpose for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/method`, + backLink: `/system/return-requirements/setup/${session.id}/method`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', purposes: [ @@ -161,7 +161,7 @@ describe('Return Requirements - Submit Purpose service', () => { text: 'Purpose description must be 100 characters or less' }, pageTitle: 'Select the purpose for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/method`, + backLink: `/system/return-requirements/setup/${session.id}/method`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', purposes: [ diff --git a/test/services/return-requirements/submit-reason.service.test.js b/test/services/return-requirements/setup/submit-reason.service.test.js similarity index 91% rename from test/services/return-requirements/submit-reason.service.test.js rename to test/services/return-requirements/setup/submit-reason.service.test.js index 378ef9621b..df7b5c35dc 100644 --- a/test/services/return-requirements/submit-reason.service.test.js +++ b/test/services/return-requirements/setup/submit-reason.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const SubmitReasonService = require('../../../app/services/return-requirements/submit-reason.service.js') +const SubmitReasonService = require('../../../../app/services/return-requirements/setup/submit-reason.service.js') -describe('Return Requirements - Submit Reason service', () => { +describe('Return Requirements Setup - Submit Reason service', () => { let payload let session let sessionData @@ -114,7 +114,7 @@ describe('Return Requirements - Submit Reason service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select the reason for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/start-date`, + backLink: `/system/return-requirements/setup/${session.id}/start-date`, licenceRef: '01/ABC', reason: null }, { skip: ['sessionId', 'error'] }) diff --git a/test/services/return-requirements/submit-remove.service.test.js b/test/services/return-requirements/setup/submit-remove.service.test.js similarity index 88% rename from test/services/return-requirements/submit-remove.service.test.js rename to test/services/return-requirements/setup/submit-remove.service.test.js index d6e2abc48a..25551c32e7 100644 --- a/test/services/return-requirements/submit-remove.service.test.js +++ b/test/services/return-requirements/setup/submit-remove.service.test.js @@ -9,13 +9,13 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') -const { generateUUID } = require('../../../app/lib/general.lib.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') +const { generateUUID } = require('../../../../app/lib/general.lib.js') // Thing under test -const SubmitRemoveService = require('../../../app/services/return-requirements/submit-remove.service.js') +const SubmitRemoveService = require('../../../../app/services/return-requirements/setup/submit-remove.service.js') -describe('Return Requirements - Submit Remove service', () => { +describe('Return Requirements Setup - Submit Remove service', () => { const requirementIndex = 0 let session diff --git a/test/services/return-requirements/submit-returns-cycle.service.test.js b/test/services/return-requirements/setup/submit-returns-cycle.service.test.js similarity index 91% rename from test/services/return-requirements/submit-returns-cycle.service.test.js rename to test/services/return-requirements/setup/submit-returns-cycle.service.test.js index 4f2188ad8b..970134a542 100644 --- a/test/services/return-requirements/submit-returns-cycle.service.test.js +++ b/test/services/return-requirements/setup/submit-returns-cycle.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const SubmitReturnsCycleService = require('../../../app/services/return-requirements/submit-returns-cycle.service.js') +const SubmitReturnsCycleService = require('../../../../app/services/return-requirements/setup/submit-returns-cycle.service.js') -describe('Return Requirements - Submit Returns Cycle service', () => { +describe('Return Requirements Setup - Submit Returns Cycle service', () => { const requirementIndex = 0 let payload @@ -113,7 +113,7 @@ describe('Return Requirements - Submit Returns Cycle service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Select the returns cycle for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/abstraction-period/0`, + backLink: `/system/return-requirements/setup/${session.id}/abstraction-period/0`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', returnsCycle: null diff --git a/test/services/return-requirements/submit-site-description.service.test.js b/test/services/return-requirements/setup/submit-site-description.service.test.js similarity index 93% rename from test/services/return-requirements/submit-site-description.service.test.js rename to test/services/return-requirements/setup/submit-site-description.service.test.js index f44c8a4ec1..a663b51dc9 100644 --- a/test/services/return-requirements/submit-site-description.service.test.js +++ b/test/services/return-requirements/setup/submit-site-description.service.test.js @@ -9,12 +9,12 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const SessionHelper = require('../../support/helpers/session.helper.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Things under test -const SubmitSiteDescriptionService = require('../../../app/services/return-requirements/submit-site-description.service.js') +const SubmitSiteDescriptionService = require('../../../../app/services/return-requirements/setup/submit-site-description.service.js') -describe('Return Requirements - Submit Site Description service', () => { +describe('Return Requirements Setup - Submit Site Description service', () => { const requirementIndex = 0 let payload @@ -113,7 +113,7 @@ describe('Return Requirements - Submit Site Description service', () => { expect(result).to.equal({ activeNavBar: 'search', pageTitle: 'Enter a site description for the requirements for returns', - backLink: `/system/return-requirements/${session.id}/returns-cycle/0`, + backLink: `/system/return-requirements/setup/${session.id}/returns-cycle/0`, licenceId: '8b7f78ba-f3ad-4cb6-a058-78abc4d1383d', licenceRef: '01/ABC', siteDescription: null diff --git a/test/services/return-requirements/submit-start-date.service.test.js b/test/services/return-requirements/setup/submit-start-date.service.test.js similarity index 94% rename from test/services/return-requirements/submit-start-date.service.test.js rename to test/services/return-requirements/setup/submit-start-date.service.test.js index e21472831e..2927fff04e 100644 --- a/test/services/return-requirements/submit-start-date.service.test.js +++ b/test/services/return-requirements/setup/submit-start-date.service.test.js @@ -9,13 +9,13 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers -const FeatureFlagsConfig = require('../../../config/feature-flags.config.js') -const SessionHelper = require('../../support/helpers/session.helper.js') +const FeatureFlagsConfig = require('../../../../config/feature-flags.config.js') +const SessionHelper = require('../../../support/helpers/session.helper.js') // Thing under test -const SubmitStartDateService = require('../../../app/services/return-requirements/submit-start-date.service.js') +const SubmitStartDateService = require('../../../../app/services/return-requirements/setup/submit-start-date.service.js') -describe('Return Requirements - Submit Start Date service', () => { +describe('Return Requirements Setup - Submit Start Date service', () => { let payload let session let sessionData diff --git a/test/validators/return-requirements/abstraction-period.validator.test.js b/test/validators/return-requirements/setup/abstraction-period.validator.test.js similarity index 94% rename from test/validators/return-requirements/abstraction-period.validator.test.js rename to test/validators/return-requirements/setup/abstraction-period.validator.test.js index 5e9fd14d2c..222ea12f2d 100644 --- a/test/validators/return-requirements/abstraction-period.validator.test.js +++ b/test/validators/return-requirements/setup/abstraction-period.validator.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const AbstractionPeriodValidator = require('../../../app/validators/return-requirements/abstraction-period.validator.js') +const AbstractionPeriodValidator = require('../../../../app/validators/return-requirements/setup/abstraction-period.validator.js') -describe('Abstraction Period validator', () => { +describe('Return Requirements Setup - Abstraction Period validator', () => { let payload describe('when valid data is provided', () => { diff --git a/test/validators/return-requirements/additional-submission-options.validator.test.js b/test/validators/return-requirements/setup/additional-submission-options.validator.test.js similarity index 85% rename from test/validators/return-requirements/additional-submission-options.validator.test.js rename to test/validators/return-requirements/setup/additional-submission-options.validator.test.js index 1f8d7ac2ec..14dcf9890d 100644 --- a/test/validators/return-requirements/additional-submission-options.validator.test.js +++ b/test/validators/return-requirements/setup/additional-submission-options.validator.test.js @@ -8,9 +8,9 @@ const { describe, it } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const AdditionalSubmissionOptionsValidator = require('../../../app/validators/return-requirements/additional-submission-options.validator.js') +const AdditionalSubmissionOptionsValidator = require('../../../../app/validators/return-requirements/setup/additional-submission-options.validator.js') -describe('Additional Submission Options validator', () => { +describe('Return Requirements Setup - Additional Submission Options validator', () => { describe('when valid data is provided', () => { const payload = { additionalSubmissionOptions: [ diff --git a/test/validators/return-requirements/agreements-exceptions.validator.test.js b/test/validators/return-requirements/setup/agreements-exceptions.validator.test.js similarity index 88% rename from test/validators/return-requirements/agreements-exceptions.validator.test.js rename to test/validators/return-requirements/setup/agreements-exceptions.validator.test.js index 25d6d5607f..a0df9ccaab 100644 --- a/test/validators/return-requirements/agreements-exceptions.validator.test.js +++ b/test/validators/return-requirements/setup/agreements-exceptions.validator.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const AgreementsExceptionsValidator = require('../../../app/validators/return-requirements/agreements-exceptions.validator.js') +const AgreementsExceptionsValidator = require('../../../../app/validators/return-requirements/setup/agreements-exceptions.validator.js') -describe('Agreements Exception validator', () => { +describe('Return Requirements Setup - Agreements Exception validator', () => { let payload describe('when valid data is provided', () => { diff --git a/test/validators/return-requirements/existing.validator.test.js b/test/validators/return-requirements/setup/existing.validator.test.js similarity index 89% rename from test/validators/return-requirements/existing.validator.test.js rename to test/validators/return-requirements/setup/existing.validator.test.js index 2e67720a82..e7efcd955a 100644 --- a/test/validators/return-requirements/existing.validator.test.js +++ b/test/validators/return-requirements/setup/existing.validator.test.js @@ -8,9 +8,9 @@ const { describe, it } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const ExistingValidator = require('../../../app/validators/return-requirements/existing.validator.js') +const ExistingValidator = require('../../../../app/validators/return-requirements/setup/existing.validator.js') -describe('Existing validator', () => { +describe('Return Requirements Setup - Existing validator', () => { const returnVersions = [ { id: '60b5d10d-1372-4fb2-b222-bfac81da69ab', reason: null, startDate: '2023-01-01T00:00:00.000Z' diff --git a/test/validators/return-requirements/frequency-collected.validator.test.js b/test/validators/return-requirements/setup/frequency-collected.validator.test.js similarity index 86% rename from test/validators/return-requirements/frequency-collected.validator.test.js rename to test/validators/return-requirements/setup/frequency-collected.validator.test.js index 3dd8bef2db..3184f9c518 100644 --- a/test/validators/return-requirements/frequency-collected.validator.test.js +++ b/test/validators/return-requirements/setup/frequency-collected.validator.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const FrequencyCollectedValidator = require('../../../app/validators/return-requirements/frequency-collected.validator.js') +const FrequencyCollectedValidator = require('../../../../app/validators/return-requirements/setup/frequency-collected.validator.js') -describe('Frequency Collected validator', () => { +describe('Return Requirements Setup - Frequency Collected validator', () => { let payload describe('when valid data is provided', () => { diff --git a/test/validators/return-requirements/frequency-reported.validator.test.js b/test/validators/return-requirements/setup/frequency-reported.validator.test.js similarity index 86% rename from test/validators/return-requirements/frequency-reported.validator.test.js rename to test/validators/return-requirements/setup/frequency-reported.validator.test.js index fa1df220ac..b98f69b6dc 100644 --- a/test/validators/return-requirements/frequency-reported.validator.test.js +++ b/test/validators/return-requirements/setup/frequency-reported.validator.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const FrequencyReportedValidator = require('../../../app/validators/return-requirements/frequency-reported.validator.js') +const FrequencyReportedValidator = require('../../../../app/validators/return-requirements/setup/frequency-reported.validator.js') -describe('Frequency reported validator', () => { +describe('Return Requirements Setup - Frequency reported validator', () => { let payload describe('when valid data is provided', () => { diff --git a/test/validators/return-requirements/method.validator.test.js b/test/validators/return-requirements/setup/method.validator.test.js similarity index 88% rename from test/validators/return-requirements/method.validator.test.js rename to test/validators/return-requirements/setup/method.validator.test.js index 6703e09c63..8b4e08ec5b 100644 --- a/test/validators/return-requirements/method.validator.test.js +++ b/test/validators/return-requirements/setup/method.validator.test.js @@ -8,9 +8,9 @@ const { describe, it } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const MethodValidator = require('../../../app/validators/return-requirements/method.validator.js') +const MethodValidator = require('../../../../app/validators/return-requirements/setup/method.validator.js') -describe('Method validator', () => { +describe('Return Requirements Setup - Method validator', () => { describe('when valid data is provided', () => { it('confirms the data is valid', () => { const result = MethodValidator.go({ method: 'use-abstraction-data' }) diff --git a/test/validators/return-requirements/no-returns-required.validator.test.js b/test/validators/return-requirements/setup/no-returns-required.validator.test.js similarity index 86% rename from test/validators/return-requirements/no-returns-required.validator.test.js rename to test/validators/return-requirements/setup/no-returns-required.validator.test.js index b1351a06d7..6b95ced846 100644 --- a/test/validators/return-requirements/no-returns-required.validator.test.js +++ b/test/validators/return-requirements/setup/no-returns-required.validator.test.js @@ -8,9 +8,9 @@ const { describe, it } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const NoReturnsRequiredValidator = require('../../../app/validators/return-requirements/no-returns-required.validator.js') +const NoReturnsRequiredValidator = require('../../../../app/validators/return-requirements/setup/no-returns-required.validator.js') -describe('No Returns Required validator', () => { +describe('Return Requirements Setup - No Returns Required validator', () => { describe('when valid data is provided', () => { it('confirms the data is valid', () => { const result = NoReturnsRequiredValidator.go({ reason: 'licence-conditions-do-not-require-returns' }) diff --git a/test/validators/return-requirements/note.validator.test.js b/test/validators/return-requirements/setup/note.validator.test.js similarity index 91% rename from test/validators/return-requirements/note.validator.test.js rename to test/validators/return-requirements/setup/note.validator.test.js index a277b87dcf..159b63a0cf 100644 --- a/test/validators/return-requirements/note.validator.test.js +++ b/test/validators/return-requirements/setup/note.validator.test.js @@ -8,9 +8,9 @@ const { describe, it } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const NoteValidator = require('../../../app/validators/return-requirements/note.validator.js') +const NoteValidator = require('../../../../app/validators/return-requirements/setup/note.validator.js') -describe('Note validator', () => { +describe('Return Requirements Setup - Note validator', () => { describe('when valid data is provided', () => { it('confirms the data is valid', () => { const result = NoteValidator.go({ note: 'Note added to return requirement' }) diff --git a/test/validators/return-requirements/points.validator.test.js b/test/validators/return-requirements/setup/points.validator.test.js similarity index 88% rename from test/validators/return-requirements/points.validator.test.js rename to test/validators/return-requirements/setup/points.validator.test.js index 60cd2669a9..cd40985506 100644 --- a/test/validators/return-requirements/points.validator.test.js +++ b/test/validators/return-requirements/setup/points.validator.test.js @@ -8,9 +8,9 @@ const { describe, it } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const PointsValidator = require('../../../app/validators/return-requirements/points.validator.js') +const PointsValidator = require('../../../../app/validators/return-requirements/setup/points.validator.js') -describe('Point validator', () => { +describe('Return Requirements Setup - Point validator', () => { describe('when valid data is provided', () => { const points = [ 'c083c0cc-42ca-4917-a929-e1fed906ff66', diff --git a/test/validators/return-requirements/purpose.validator.test.js b/test/validators/return-requirements/setup/purpose.validator.test.js similarity index 96% rename from test/validators/return-requirements/purpose.validator.test.js rename to test/validators/return-requirements/setup/purpose.validator.test.js index b9a0eea292..420ee5372f 100644 --- a/test/validators/return-requirements/purpose.validator.test.js +++ b/test/validators/return-requirements/setup/purpose.validator.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const PurposeValidator = require('../../../app/validators/return-requirements/purpose.validator.js') +const PurposeValidator = require('../../../../app/validators/return-requirements/setup/purpose.validator.js') -describe('Purpose validator', () => { +describe('Return Requirements Setup - Purpose validator', () => { const validPurposeIds = [ '14794d57-1acf-4c91-8b48-4b1ec68bfd6f', '49088608-ee9f-491a-8070-6831240945ac', diff --git a/test/validators/return-requirements/reason.validator.test.js b/test/validators/return-requirements/setup/reason.validator.test.js similarity index 87% rename from test/validators/return-requirements/reason.validator.test.js rename to test/validators/return-requirements/setup/reason.validator.test.js index ce5ebdcc8f..dc2a0a2b05 100644 --- a/test/validators/return-requirements/reason.validator.test.js +++ b/test/validators/return-requirements/setup/reason.validator.test.js @@ -8,9 +8,9 @@ const { describe, it } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const ReasonValidator = require('../../../app/validators/return-requirements/reason.validator.js') +const ReasonValidator = require('../../../../app/validators/return-requirements/setup/reason.validator.js') -describe('Reason validator', () => { +describe('Return Requirements Setup - Reason validator', () => { describe('when valid data is provided', () => { it('confirms the data is valid', () => { const result = ReasonValidator.go({ reason: 'new-licence' }) diff --git a/test/validators/return-requirements/returns-cycle.validator.test.js b/test/validators/return-requirements/setup/returns-cycle.validator.test.js similarity index 86% rename from test/validators/return-requirements/returns-cycle.validator.test.js rename to test/validators/return-requirements/setup/returns-cycle.validator.test.js index e36a4c3354..191212a1f2 100644 --- a/test/validators/return-requirements/returns-cycle.validator.test.js +++ b/test/validators/return-requirements/setup/returns-cycle.validator.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const ReturnsCycleValidator = require('../../../app/validators/return-requirements/returns-cycle.validator.js') +const ReturnsCycleValidator = require('../../../../app/validators/return-requirements/setup/returns-cycle.validator.js') -describe('Returns Cycle validator', () => { +describe('Return Requirements Setup - Returns Cycle validator', () => { let payload describe('when valid data is provided', () => { diff --git a/test/validators/return-requirements/site-description.validator.test.js b/test/validators/return-requirements/setup/site-description.validator.test.js similarity index 92% rename from test/validators/return-requirements/site-description.validator.test.js rename to test/validators/return-requirements/setup/site-description.validator.test.js index 1d58f3c1f1..7f4e604640 100644 --- a/test/validators/return-requirements/site-description.validator.test.js +++ b/test/validators/return-requirements/setup/site-description.validator.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const SiteDescriptionValidator = require('../../../app/validators/return-requirements/site-description.validator.js') +const SiteDescriptionValidator = require('../../../../app/validators/return-requirements/setup/site-description.validator.js') -describe('Site Description validator', () => { +describe('Return Requirements Setup - Site Description validator', () => { let payload describe('when a valid payload is provided', () => { diff --git a/test/validators/return-requirements/start-date.validator.test.js b/test/validators/return-requirements/setup/start-date.validator.test.js similarity index 97% rename from test/validators/return-requirements/start-date.validator.test.js rename to test/validators/return-requirements/setup/start-date.validator.test.js index b7d9e0bb0c..acb9600239 100644 --- a/test/validators/return-requirements/start-date.validator.test.js +++ b/test/validators/return-requirements/setup/start-date.validator.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const StartDateValidator = require('../../../app/validators/return-requirements/start-date.validator.js') +const StartDateValidator = require('../../../../app/validators/return-requirements/setup/start-date.validator.js') -describe('Start Date validator', () => { +describe('Return Requirements Setup - Start Date validator', () => { const licenceEndDate = '2023-12-31T00:00:00.000Z' const licenceStartDate = '2023-01-01T00:00:00.000Z' From a60c7afa1cfdfbc3fe7ee1e2eb2f7da76a5cbae5 Mon Sep 17 00:00:00 2001 From: Alan Cruikshanks Date: Sun, 20 Oct 2024 23:00:19 +0100 Subject: [PATCH 4/5] Tidy up view licence inconsistencies (#1430) This is just some housekeeping to resolve some inconsistencies spotted when working on another housekeeping task ([Return requirements tidy up](https://github.com/DEFRA/water-abstraction-team/issues/126)). The view licence 'tab' pages follow the convention `view-licence-[tab name].service.js` in services but have a mixed convention in the presenters. This is a quick PR to tidy up this inconsistency. --- ... view-licence-communications.presenter.js} | 4 +- ...er.js => view-licence-set-up.presenter.js} | 27 ++-- .../licences/fetch-communications.service.js | 3 +- .../licences/fetch-licence-bills.service.js | 1 + .../licences/fetch-licence-returns.service.js | 1 + .../licences/view-licence-bills.service.js | 2 + .../view-licence-communications.service.js | 5 +- .../licences/view-licence-returns.service.js | 2 +- .../licences/view-licence-set-up.service.js | 6 +- ...-licence-communications.presenter.test.js} | 14 +- ... => view-licence-set-up.presenter.test.js} | 124 +++++++++++++----- 11 files changed, 127 insertions(+), 62 deletions(-) rename app/presenters/licences/{communications.presenter.js => view-licence-communications.presenter.js} (90%) rename app/presenters/licences/{set-up.presenter.js => view-licence-set-up.presenter.js} (93%) rename test/presenters/licences/{communications.presenter.test.js => view-licence-communications.presenter.test.js} (83%) rename test/presenters/licences/{set-up.presenter.test.js => view-licence-set-up.presenter.test.js} (84%) diff --git a/app/presenters/licences/communications.presenter.js b/app/presenters/licences/view-licence-communications.presenter.js similarity index 90% rename from app/presenters/licences/communications.presenter.js rename to app/presenters/licences/view-licence-communications.presenter.js index e9b7e93926..43b5f4a07d 100644 --- a/app/presenters/licences/communications.presenter.js +++ b/app/presenters/licences/view-licence-communications.presenter.js @@ -2,7 +2,7 @@ /** * Formats data for the `/licences/{id}/communications` view licence communications page - * @module CommunicationsPresenter + * @module ViewLicenceCommunicationsPresenter */ const { formatLongDate, sentenceCase } = require('../base.presenter.js') @@ -10,6 +10,8 @@ const { formatLongDate, sentenceCase } = require('../base.presenter.js') /** * Formats data for the `/licences/{id}/communications` view licence communications page * + * @param {module:WorkflowModel[]} communications - All in-progress workflow records for the licence + * * @returns {object} The data formatted for the view template */ function go (communications) { diff --git a/app/presenters/licences/set-up.presenter.js b/app/presenters/licences/view-licence-set-up.presenter.js similarity index 93% rename from app/presenters/licences/set-up.presenter.js rename to app/presenters/licences/view-licence-set-up.presenter.js index 9f1db3b169..b09655777e 100644 --- a/app/presenters/licences/set-up.presenter.js +++ b/app/presenters/licences/view-licence-set-up.presenter.js @@ -2,14 +2,15 @@ /** * Formats data for the `/licences/{id}/set-up` view licence set up page - * @module SetUpPresenter + * @module ViewLicenceSetUpPresenter */ -const FeatureFlagsConfig = require('../../../config/feature-flags.config.js') const { formatLongDate } = require('../base.presenter.js') const { returnRequirementReasons } = require('../../lib/static-lookups.lib.js') -const roles = { +const FeatureFlagsConfig = require('../../../config/feature-flags.config.js') + +const ROLES = { billing: 'billing', deleteAgreements: 'delete_agreements', manageAgreements: 'manage_agreements', @@ -17,7 +18,7 @@ const roles = { workflowReviewer: 'charge_version_workflow_reviewer' } -const agreementDescriptions = { +const AGREEMENTS = { S127: 'Two-part tariff', S130S: 'Canal and Rivers Trust, supported source (S130S)', S130U: 'Canal and Rivers Trust, unsupported source (S130U)', @@ -58,7 +59,7 @@ function _agreements (commonData, agreements, auth, enableTwoPartSupplementary) return { startDate: formatLongDate(agreement.startDate), endDate: agreement.endDate ? formatLongDate(agreement.endDate) : '', - description: agreementDescriptions[_financialAgreementCode(agreement)], + description: AGREEMENTS[_financialAgreementCode(agreement)], signedOn: agreement.signedOn ? formatLongDate(agreement.signedOn) : '', action: _agreementActionLinks(commonData, agreement, auth, enableTwoPartSupplementary) } @@ -66,7 +67,7 @@ function _agreements (commonData, agreements, auth, enableTwoPartSupplementary) } function _agreementActionLinks (commonData, agreement, auth, enableTwoPartSupplementary) { - if (!auth.credentials.scope.includes(roles.manageAgreements)) { + if (!auth.credentials.scope.includes(ROLES.manageAgreements)) { return [] } @@ -77,7 +78,7 @@ function _agreementActionLinks (commonData, agreement, auth, enableTwoPartSupple const actionLinks = [] const hasNotEnded = agreement.endDate === null - if (auth.credentials.scope.includes(roles.deleteAgreements)) { + if (auth.credentials.scope.includes(ROLES.deleteAgreements)) { actionLinks.push({ text: 'Delete', link: `/licences/${commonData.licenceId}/agreements/${agreement.id}/delete` @@ -97,7 +98,7 @@ function _agreementActionLinks (commonData, agreement, auth, enableTwoPartSupple const isNotMarkedForSupplementaryBilling = commonData.includeInPresrocBilling === 'no' if (hasNotEnded && is2PTAgreement && isNotMarkedForSupplementaryBilling && - auth.credentials.scope.includes(roles.billing)) { + auth.credentials.scope.includes(ROLES.billing)) { actionLinks.push({ text: 'Recalculate bills', link: `/licences/${commonData.licenceId}/mark-for-supplementary-billing` @@ -109,7 +110,7 @@ function _agreementActionLinks (commonData, agreement, auth, enableTwoPartSupple } function _agreementLinks (auth, commonData) { - if (auth.credentials.scope.includes(roles.manageAgreements) && !_endsSixYearsAgo(commonData.ends)) { + if (auth.credentials.scope.includes(ROLES.manageAgreements) && !_endsSixYearsAgo(commonData.ends)) { return { setUpAgreement: `/licences/${commonData.licenceId}/agreements/select-type` } @@ -119,7 +120,7 @@ function _agreementLinks (auth, commonData) { } function _chargeInformationLinks (auth, commonData) { - if (auth.credentials.scope.includes(roles.workflowEditor) && !_endsSixYearsAgo(commonData.ends)) { + if (auth.credentials.scope.includes(ROLES.workflowEditor) && !_endsSixYearsAgo(commonData.ends)) { return { setupNewCharge: `/licences/${commonData.licenceId}/charge-information/create`, makeLicenceNonChargeable: `/licences/${commonData.licenceId}/charge-information/non-chargeable-reason?start=1` @@ -204,7 +205,7 @@ function _reason (returnVersion) { } function _recalculateBills (agreements, auth, commonData, enableTwoPartSupplementary) { - if (auth.credentials.scope.includes(roles.billing) && + if (auth.credentials.scope.includes(ROLES.billing) && _hasTwoPartTariffAgreement(agreements) && enableTwoPartSupplementary ) { @@ -254,11 +255,11 @@ function _workflows (workflows, auth) { } function _workflowAction (workflow, auth) { - if (workflow.status === 'to_setup' && auth.credentials.scope.includes(roles.workflowEditor)) { + if (workflow.status === 'to_setup' && auth.credentials.scope.includes(ROLES.workflowEditor)) { return _workflowActionEditor(workflow) } - if (auth.credentials.scope.includes(roles.workflowReviewer)) { + if (auth.credentials.scope.includes(ROLES.workflowReviewer)) { return _workflowActionReviewer(workflow) } diff --git a/app/services/licences/fetch-communications.service.js b/app/services/licences/fetch-communications.service.js index 8e2d760fab..0433ac7a7b 100644 --- a/app/services/licences/fetch-communications.service.js +++ b/app/services/licences/fetch-communications.service.js @@ -14,7 +14,8 @@ const DatabaseConfig = require('../../../config/database.config.js') * * Was built to provide the data needed for the '/licences/{id}/communications' page * - * @param {string} licenceId - The UUID for the licence to fetch + * @param {string} licenceRef - The reference for the licence to fetch + * @param {number|string} page - The current page for the pagination service * * @returns {Promise} the data needed to populate the view licence page's communications tab */ diff --git a/app/services/licences/fetch-licence-bills.service.js b/app/services/licences/fetch-licence-bills.service.js index 9e70b0ec80..d16464ec86 100644 --- a/app/services/licences/fetch-licence-bills.service.js +++ b/app/services/licences/fetch-licence-bills.service.js @@ -13,6 +13,7 @@ const DatabaseConfig = require('../../../config/database.config.js') * Fetches all bills for a licence which is needed for the view '/licences/{id}/bills` page * * @param {string} licenceId - The UUID for the licence to fetch + * @param {number|string} page - The current page for the pagination service * * @returns {Promise} the data needed to populate the view licence page's bills tab */ diff --git a/app/services/licences/fetch-licence-returns.service.js b/app/services/licences/fetch-licence-returns.service.js index 020a49490f..f7420ce3d1 100644 --- a/app/services/licences/fetch-licence-returns.service.js +++ b/app/services/licences/fetch-licence-returns.service.js @@ -13,6 +13,7 @@ const DatabaseConfig = require('../../../config/database.config.js') * Fetches all return logs for a licence which is needed for the view '/licences/{id}/returns` page * * @param {string} licenceId - The UUID for the licence to fetch + * @param {number|string} page - The current page for the pagination service * * @returns {Promise} the data needed to populate the view licence page's returns tab */ diff --git a/app/services/licences/view-licence-bills.service.js b/app/services/licences/view-licence-bills.service.js index 4f98f4f41b..f526d3d04a 100644 --- a/app/services/licences/view-licence-bills.service.js +++ b/app/services/licences/view-licence-bills.service.js @@ -14,6 +14,8 @@ const ViewLicenceService = require('./view-licence.service.js') * Orchestrates fetching and presenting the data needed for the view licence bills tab * * @param {string} licenceId - The UUID of the licence + * @param {object} auth - The auth object taken from `request.auth` containing user details + * @param {number|string} page - The current page for the pagination service * * @returns {Promise} an object representing the `pageData` needed by the licence bills template. */ diff --git a/app/services/licences/view-licence-communications.service.js b/app/services/licences/view-licence-communications.service.js index b0aac67aa1..4714a08728 100644 --- a/app/services/licences/view-licence-communications.service.js +++ b/app/services/licences/view-licence-communications.service.js @@ -5,16 +5,17 @@ * @module ViewLicenceCommunicationsService */ -const CommunicationsPresenter = require('../../presenters/licences/communications.presenter.js') const FetchCommunicationsService = require('./fetch-communications.service.js') const PaginatorPresenter = require('../../presenters/paginator.presenter.js') const ViewLicenceService = require('./view-licence.service.js') +const ViewLicenceCommunicationsPresenter = require('../../presenters/licences/view-licence-communications.presenter.js') /** * Orchestrates fetching and presenting the data needed for the licence communications page * * @param {string} licenceId - The UUID of the licence * @param {object} auth - The auth object taken from `request.auth` containing user details + * @param {number|string} page - The current page for the pagination service * * @returns {Promise} an object representing the `pageData` needed by the licence communication template. */ @@ -22,7 +23,7 @@ async function go (licenceId, auth, page) { const commonData = await ViewLicenceService.go(licenceId, auth) const communications = await FetchCommunicationsService.go(commonData.licenceRef, page) - const communicationsData = CommunicationsPresenter.go(communications.communications) + const communicationsData = ViewLicenceCommunicationsPresenter.go(communications.communications) const pagination = PaginatorPresenter.go(communications.pagination.total, Number(page), `/system/licences/${licenceId}/communications`) diff --git a/app/services/licences/view-licence-returns.service.js b/app/services/licences/view-licence-returns.service.js index 496887ff18..b8e7a0ad09 100644 --- a/app/services/licences/view-licence-returns.service.js +++ b/app/services/licences/view-licence-returns.service.js @@ -16,7 +16,7 @@ const ViewLicenceService = require('./view-licence.service.js') * * @param {string} licenceId - The UUID of the licence * @param {object} auth - The auth object taken from `request.auth` containing user details - * @param {object} page - The current page for the pagination service + * @param {number|string} page - The current page for the pagination service * * @returns {Promise} an object representing the `pageData` needed by the licence summary template. */ diff --git a/app/services/licences/view-licence-set-up.service.js b/app/services/licences/view-licence-set-up.service.js index d05902daf4..1f04683d75 100644 --- a/app/services/licences/view-licence-set-up.service.js +++ b/app/services/licences/view-licence-set-up.service.js @@ -9,7 +9,7 @@ const FetchAgreementsService = require('./fetch-agreements.service.js') const FetchChargeVersionsService = require('./fetch-charge-versions.service.js') const FetchReturnVersionsService = require('./fetch-return-versions.service.js') const FetchWorkflowsService = require('./fetch-workflows.service.js') -const SetUpPresenter = require('../../presenters/licences/set-up.presenter.js') +const ViewLicenceSetUpPresenter = require('../../presenters/licences/view-licence-set-up.presenter.js') const ViewLicenceService = require('./view-licence.service.js') /** @@ -28,7 +28,9 @@ async function go (licenceId, auth) { const workflows = await FetchWorkflowsService.go(licenceId) const returnVersions = await FetchReturnVersionsService.go(licenceId) - const licenceSetUpData = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const licenceSetUpData = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) return { activeTab: 'set-up', diff --git a/test/presenters/licences/communications.presenter.test.js b/test/presenters/licences/view-licence-communications.presenter.test.js similarity index 83% rename from test/presenters/licences/communications.presenter.test.js rename to test/presenters/licences/view-licence-communications.presenter.test.js index 237e972baa..db3387f317 100644 --- a/test/presenters/licences/communications.presenter.test.js +++ b/test/presenters/licences/view-licence-communications.presenter.test.js @@ -8,9 +8,9 @@ const { describe, it, beforeEach } = exports.lab = Lab.script() const { expect } = Code // Thing under test -const CommunicationsPresenter = require('../../../app/presenters/licences/communications.presenter.js') +const ViewLicenceCommunicationsPresenter = require('../../../app/presenters/licences/view-licence-communications.presenter.js') -describe('Communications presenter', () => { +describe('View Licence Communications presenter', () => { let communications beforeEach(() => { @@ -35,7 +35,7 @@ describe('Communications presenter', () => { describe('when provided with populated communications data', () => { it('correctly presents the data', () => { - const result = CommunicationsPresenter.go(communications) + const result = ViewLicenceCommunicationsPresenter.go(communications) expect(result).to.equal({ communications: [{ @@ -60,7 +60,7 @@ describe('Communications presenter', () => { }) it('returns that communication type', () => { - const result = CommunicationsPresenter.go(communications) + const result = ViewLicenceCommunicationsPresenter.go(communications) expect(result.communications[0].type).to.equal({ label: 'Returns: invitation', @@ -72,7 +72,7 @@ describe('Communications presenter', () => { describe('when the message ref does not contain pdf', () => { it('returns that communication type', () => { - const result = CommunicationsPresenter.go(communications) + const result = ViewLicenceCommunicationsPresenter.go(communications) expect(result.communications[0].type).to.equal({ label: 'Returns: invitation', @@ -90,7 +90,7 @@ describe('Communications presenter', () => { describe('when the message type is present', () => { it('returns the method key in sentence case', () => { - const result = CommunicationsPresenter.go(communications) + const result = ViewLicenceCommunicationsPresenter.go(communications) expect(result.communications[0].method).to.equal('I am in sentence case') }) @@ -104,7 +104,7 @@ describe('Communications presenter', () => { }) it('returns the type object with an alert text', () => { - const result = CommunicationsPresenter.go(communications) + const result = ViewLicenceCommunicationsPresenter.go(communications) expect(result.communications[0].type).to.equal({ label: 'Test - Water abstraction alert', diff --git a/test/presenters/licences/set-up.presenter.test.js b/test/presenters/licences/view-licence-set-up.presenter.test.js similarity index 84% rename from test/presenters/licences/set-up.presenter.test.js rename to test/presenters/licences/view-licence-set-up.presenter.test.js index 10fbb5fced..2539b8c61d 100644 --- a/test/presenters/licences/set-up.presenter.test.js +++ b/test/presenters/licences/view-licence-set-up.presenter.test.js @@ -15,9 +15,9 @@ const ReturnVersionModel = require('../../../app/models/return-version.model.js' const FeatureFlagsConfig = require('../../../config/feature-flags.config.js') // Thing under test -const SetUpPresenter = require('../../../app/presenters/licences/set-up.presenter.js') +const ViewLicenceSetUpPresenter = require('../../../app/presenters/licences/view-licence-set-up.presenter.js') -describe('Licences - Set Up presenter', () => { +describe('View Licence Set Up presenter', () => { const agreement = { id: '123', startDate: new Date('2020-01-01'), @@ -118,7 +118,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly presents the agreements data', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.agreements).to.equal([ { @@ -146,7 +148,9 @@ describe('Licences - Set Up presenter', () => { describe('when all the actions are available for an agreement', () => { it('shows delete, end and recalculate bills actions', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.agreements[0].action).to.equal([ { @@ -172,7 +176,9 @@ describe('Licences - Set Up presenter', () => { }) it('there are no actions', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.agreements[0].action).to.equal([]) }) @@ -184,7 +190,9 @@ describe('Licences - Set Up presenter', () => { }) it('there is no action link to delete', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.agreements[0].action).to.equal([ { @@ -205,7 +213,9 @@ describe('Licences - Set Up presenter', () => { }) it('there is no action link to end the agreement', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.agreements[0].action).to.equal([ { @@ -222,7 +232,9 @@ describe('Licences - Set Up presenter', () => { }) it('there is no action link to Recalculate bills', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.agreements[0].action).to.equal([ { @@ -241,7 +253,9 @@ describe('Licences - Set Up presenter', () => { describe('when the financial agreement code ', () => { describe('is for Two-part tariff ', () => { it('correctly maps the code to the description', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.agreements[0].description).to.equal('Two-part tariff') }) @@ -253,7 +267,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly maps the code to the description', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.agreements[0].description).to.equal('Canal and Rivers Trust, supported source (S130S)') }) @@ -265,7 +281,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly maps the code to the description', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.agreements[0].description).to.equal('Canal and Rivers Trust, unsupported source (S130U)') }) @@ -276,7 +294,7 @@ describe('Licences - Set Up presenter', () => { agreement.financialAgreement.code = 'S126' }) it('correctly maps the code to the description', () => { - const result = SetUpPresenter + const result = ViewLicenceSetUpPresenter .go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) expect(result.agreements[0].description).to.equal('Abatement') @@ -290,7 +308,9 @@ describe('Licences - Set Up presenter', () => { }) it('shows delete, end and recalculate bills actions', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.agreements[0].action).to.equal([ { @@ -322,7 +342,9 @@ describe('Licences - Set Up presenter', () => { }) it('shows delete, end and recalculate bills actions', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.agreements[0].action).to.equal([]) }) @@ -337,7 +359,9 @@ describe('Licences - Set Up presenter', () => { }) it('groups both types of data into the "chargeInformation" property', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.chargeInformation).to.equal([ { @@ -377,7 +401,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly presents the data with a dash for the end date', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.chargeInformation).to.equal([{ action: [{ @@ -401,7 +427,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly presents the data with the end date', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.chargeInformation).to.equal([{ action: [{ @@ -435,7 +463,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly presents the data and workflow actions', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.chargeInformation).to.equal([{ action: [{ @@ -454,7 +484,9 @@ describe('Licences - Set Up presenter', () => { describe('and the user is not permitted to review workflow records', () => { it('correctly presents the data and workflow actions', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.chargeInformation).to.equal([{ action: [], @@ -480,7 +512,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly presents the data and workflow actions', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.chargeInformation).to.equal([{ action: [{ @@ -499,7 +533,9 @@ describe('Licences - Set Up presenter', () => { describe('and the user is not permitted to review workflow records', () => { it('correctly presents the data and workflow actions', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.chargeInformation).to.equal([{ action: [], @@ -525,7 +561,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly presents the data and workflow actions', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.chargeInformation).to.equal([{ action: [{ @@ -548,7 +586,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly presents the data and workflow actions', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.chargeInformation).to.equal([{ action: [], @@ -569,7 +609,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly presents the returns versions data', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.returnVersions).to.equal([ { @@ -595,7 +637,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly presents the returns versions data with the missing data defaults', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.returnVersions).to.equal([ { @@ -632,7 +676,7 @@ describe('Licences - Set Up presenter', () => { }) it('correctly presents the set up agreement link ', () => { - const result = SetUpPresenter.go( + const result = ViewLicenceSetUpPresenter.go( chargeVersions, workflows, agreements, @@ -656,7 +700,7 @@ describe('Licences - Set Up presenter', () => { }) it('the agreement link is not present', () => { - const result = SetUpPresenter + const result = ViewLicenceSetUpPresenter .go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) expect(result.links.agreements.setUpAgreement).to.be.undefined() @@ -678,7 +722,7 @@ describe('Licences - Set Up presenter', () => { }) it('the agreement link is not present', () => { - const result = SetUpPresenter.go( + const result = ViewLicenceSetUpPresenter.go( chargeVersions, workflows, agreements, @@ -696,7 +740,7 @@ describe('Licences - Set Up presenter', () => { describe('and the user can edit a workflow ', () => { describe('and the licence does not end more than 6 years ago', () => { it('return the associated links', () => { - const result = SetUpPresenter.go( + const result = ViewLicenceSetUpPresenter.go( chargeVersions, workflows, agreements, @@ -728,7 +772,7 @@ describe('Licences - Set Up presenter', () => { }) it('returns no links for editing', () => { - const result = SetUpPresenter.go( + const result = ViewLicenceSetUpPresenter.go( chargeVersions, workflows, agreements, @@ -746,7 +790,9 @@ describe('Licences - Set Up presenter', () => { describe('when the user wants to manage return versions', () => { describe('and the "enableRequirementsForReturns" feature toggle is true', () => { it('return the associated links', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.links.returnVersions.returnsRequired).to .equal('/system/licences/f91bf145-ce8e-481c-a842-4da90348062b/returns-required') @@ -761,7 +807,9 @@ describe('Licences - Set Up presenter', () => { }) it('return no returnVersions links', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.links.returnVersions).to.equal({}) }) @@ -785,7 +833,9 @@ describe('Licences - Set Up presenter', () => { }) it('correctly presents the recalculate bills link', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.links.recalculateBills.markForSupplementaryBilling).to.equal( '/system/licences/f91bf145-ce8e-481c-a842-4da90348062b/mark-for-supplementary-billing' @@ -802,7 +852,9 @@ describe('Licences - Set Up presenter', () => { }) it('the recalculate bills link is not present', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.recalculateBills).to.be.undefined() }) @@ -817,7 +869,9 @@ describe('Licences - Set Up presenter', () => { }) it('the recalculate bills link is not present', () => { - const result = SetUpPresenter.go(chargeVersions, workflows, agreements, returnVersions, auth, commonData) + const result = ViewLicenceSetUpPresenter.go( + chargeVersions, workflows, agreements, returnVersions, auth, commonData + ) expect(result.recalculateBills).to.be.undefined() }) From e45ca6258b6fe205308e837ead5fca3eff4732d8 Mon Sep 17 00:00:00 2001 From: Becky Ransome <91424856+Beckyrose200@users.noreply.github.com> Date: Mon, 21 Oct 2024 09:18:12 +0100 Subject: [PATCH 5/5] Add Sinon.restore to submit-year.service.test.js (#1391) A housekeeping PR to fix a linting error and adding Sinon.restore in a unit test file that was missing it. --- app/services/bill-runs/fetch-region.service.js | 2 +- test/services/bill-runs/setup/submit-year.service.test.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/services/bill-runs/fetch-region.service.js b/app/services/bill-runs/fetch-region.service.js index ea69dbc59d..bd0bfe90ec 100644 --- a/app/services/bill-runs/fetch-region.service.js +++ b/app/services/bill-runs/fetch-region.service.js @@ -14,7 +14,7 @@ const RegionModel = require('../../models/region.model.js') * supplementary bill run. Its primary aim is to meet the acceptance criteria defined in WATER-3787. * * @param {string} naldRegionId - The NALD region ID (a number between 1 to 9, 9 being the test region) for the region - * to find + * to find * * @returns {object} Instance of `RegionModel` with the matching NALD Region ID */ diff --git a/test/services/bill-runs/setup/submit-year.service.test.js b/test/services/bill-runs/setup/submit-year.service.test.js index cb32dcb07b..165fd0917b 100644 --- a/test/services/bill-runs/setup/submit-year.service.test.js +++ b/test/services/bill-runs/setup/submit-year.service.test.js @@ -5,7 +5,7 @@ const Lab = require('@hapi/lab') const Code = require('@hapi/code') const Sinon = require('sinon') -const { describe, it, beforeEach } = exports.lab = Lab.script() +const { describe, it, beforeEach, afterEach } = exports.lab = Lab.script() const { expect } = Code // Test helpers @@ -25,6 +25,10 @@ describe('Bill Runs Setup Submit Year service', () => { session = await SessionHelper.add({ data: {} }) }) + afterEach(() => { + Sinon.restore() + }) + describe('when called', () => { describe('with a valid payload', () => { describe('and the year is in the SROC period', () => {