From fba83b816627f16b830b0979c592f90019f8e2fd Mon Sep 17 00:00:00 2001 From: Fazal Khan Date: Mon, 19 Feb 2024 14:11:32 +0000 Subject: [PATCH 1/3] Returns required - 'Select an existing return requirement from' https://eaflood.atlassian.net/browse/WATER-4282 This is a stub page. This page is the basic skeleton for the 'Select an existing return requirement from' page. This is step 4 in the return requirements journey. From 2bc2739151735f4f71ba286efc0104c8d308b502 Mon Sep 17 00:00:00 2001 From: Fazal Khan Date: Tue, 20 Feb 2024 09:56:12 +0000 Subject: [PATCH 2/3] feat:(app) - basic page for selecting existing returns --- .../return-requirements.controller.js | 20 +++++++++++++ app/routes/return-requirement.routes.js | 26 +++++++++++++++++ app/views/return-requirements/existing.njk | 28 +++++++++++++++++++ .../return-requirements.controller.test.js | 11 ++++++++ 4 files changed, 85 insertions(+) create mode 100644 app/views/return-requirements/existing.njk diff --git a/app/controllers/return-requirements.controller.js b/app/controllers/return-requirements.controller.js index 87edeae848..3678d12c66 100644 --- a/app/controllers/return-requirements.controller.js +++ b/app/controllers/return-requirements.controller.js @@ -73,6 +73,18 @@ async function checkYourAnswers (request, h) { }) } +async function existing (request, h) { + const { sessionId } = request.params + + const session = await SessionModel.query().findById(sessionId) + + return h.view('return-requirements/existing.njk', { + activeNavBar: 'search', + pageTitle: 'Select an existing return requirement from', + ...session + }) +} + async function frequencyCollected (request, h) { const { sessionId } = request.params @@ -213,6 +225,12 @@ async function submitCheckYourAnswers (request, h) { return h.redirect(`/system/return-requirements/${licenceId}/approved`) } +async function submitExisting (request, h) { + const { sessionId } = request.params + + return h.redirect(`/system/return-requirements/${sessionId}/check-your-answers`) +} + async function submitFrequencyCollected (request, h) { const { sessionId } = request.params @@ -307,6 +325,7 @@ module.exports = { agreementsExceptions, approved, checkYourAnswers, + existing, frequencyCollected, frequencyReported, noReturnsRequired, @@ -321,6 +340,7 @@ module.exports = { submitAddNote, submitAgreementsExceptions, submitCheckYourAnswers, + submitExisting, submitFrequencyCollected, submitFrequencyReported, submitNoReturnsRequired, diff --git a/app/routes/return-requirement.routes.js b/app/routes/return-requirement.routes.js index 4e88e942f8..21fb06fcf5 100644 --- a/app/routes/return-requirement.routes.js +++ b/app/routes/return-requirement.routes.js @@ -120,6 +120,32 @@ const routes = [ description: 'Submit check your answers' } }, + { + method: 'GET', + path: '/return-requirements/{sessionId}/existing', + handler: ReturnRequirementsController.existing, + options: { + auth: { + access: { + scope: ['billing'] + } + }, + description: 'Select an existing return requirement from' + } + }, + { + method: 'POST', + path: '/return-requirements/{sessionId}/existing', + handler: ReturnRequirementsController.submitExisting, + options: { + auth: { + access: { + scope: ['billing'] + } + }, + description: 'Select an existing return requirement from' + } + }, { method: 'GET', path: '/return-requirements/{sessionId}/frequency-collected', diff --git a/app/views/return-requirements/existing.njk b/app/views/return-requirements/existing.njk new file mode 100644 index 0000000000..281f9c11d5 --- /dev/null +++ b/app/views/return-requirements/existing.njk @@ -0,0 +1,28 @@ +{% extends 'layout.njk' %} +{% from "govuk/components/back-link/macro.njk" import govukBackLink %} +{% from "govuk/components/button/macro.njk" import govukButton %} + +{% set rootLink = "/system/return-requirements/" + id %} + +{% block breadcrumbs %} + {# Back link #} + {{ + govukBackLink({ + text: 'Back', + href: rootLink + "/setup" + }) + }} +{% endblock %} + +{% block content %} + {# Main heading #} +
+

{{ pageTitle }}

+
+ +
+
+ {{ govukButton({ text: "Continue" }) }} +
+
+{% endblock %} diff --git a/test/controllers/return-requirements.controller.test.js b/test/controllers/return-requirements.controller.test.js index c65c046439..23ba4eec8e 100644 --- a/test/controllers/return-requirements.controller.test.js +++ b/test/controllers/return-requirements.controller.test.js @@ -91,6 +91,17 @@ describe('Return requirements controller', () => { }) }) + describe('GET /return-requirements/{sessionId}/existing', () => { + describe('when the request succeeds', () => { + it('returns the page successfully', async () => { + const response = await server.inject(_options('existing')) + + expect(response.statusCode).to.equal(200) + expect(response.payload).to.contain('Select an existing return requirement from') + }) + }) + }) + describe('GET /return-requirements/{sessionId}/frequency-collected', () => { describe('when the request succeeds', () => { it('returns the page successfully', async () => { From a832934a480e64ce2ef6c4a87bb01a9b31ed7003 Mon Sep 17 00:00:00 2001 From: Fazal Date: Tue, 20 Feb 2024 10:42:15 +0000 Subject: [PATCH 3/3] Update app/routes/return-requirement.routes.js Co-authored-by: Alan Cruikshanks --- app/routes/return-requirement.routes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/routes/return-requirement.routes.js b/app/routes/return-requirement.routes.js index 21fb06fcf5..f1498cbd17 100644 --- a/app/routes/return-requirement.routes.js +++ b/app/routes/return-requirement.routes.js @@ -143,7 +143,7 @@ const routes = [ scope: ['billing'] } }, - description: 'Select an existing return requirement from' + description: 'Submit an existing return requirement from' } }, {