Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enter abstraction period dates for return set up #610

Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions app/controllers/return-requirements.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,19 @@ async function saveNote (request, h) {
return h.redirect(`/system/return-requirements/${id}/returns-check-your-answers`)
}

async function abstractionPeriod (request, h) {
const { sessionId } = request.params

const session = await SessionModel.query().findById(sessionId)

return h.view('return-requirements/abstraction-period.njk', {
activeNavBar: 'search',
...session
})
}

module.exports = {
abstractionPeriod,
addANote,
noReturnsCheckYourAnswers,
noReturnsRequired,
Expand Down
12 changes: 12 additions & 0 deletions app/routes/return-requirement.routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,18 @@ const routes = [
},
description: 'Save note'
}
}, {
method: 'GET',
path: '/return-requirements/{sessionId}/abstraction-period',
handler: ReturnRequirementsController.abstractionPeriod,
options: {
auth: {
access: {
scope: ['billing']
}
},
description: 'Returns abstraction period page'
}
}
]

Expand Down
30 changes: 30 additions & 0 deletions app/views/return-requirements/abstraction-period.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{% extends 'layout.njk' %}
{% from "govuk/components/back-link/macro.njk" import govukBackLink %}
{% from "govuk/components/button/macro.njk" import govukButton %}

{% set title = "Enter the abstraction period for the return requirement
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't mind doing it this way but we need to be consistent. some of the pages have the text in the H1 element. so we either need to change the others to this way or make this the same as those.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@robertparkinson I've created another branch and moved all title strings in other files to use the set.
I'm lifting this from the prototype, so it's less friction when copying across nunjucks code.

" %}
{% set rootLink = "/system/return-requirements/" + id %}

{% block breadcrumbs %}
{# Back link #}
{{
govukBackLink({
text: 'Back',
href: rootLink + "/points"
})
}}
{% endblock %}

{% block content %}
{# Main heading #}
<div class="govuk-body">
<h1 class="govuk-heading-xl govuk-!-margin-bottom-3">{{ title }}</h1>
</div>

<form method="post">
<div class="govuk-body">
{{ govukButton({ text: "Continue" }) }}
</div>
</form>
{% endblock %}
20 changes: 20 additions & 0 deletions test/controllers/return-requirements.controller.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -191,4 +191,24 @@ describe('Return requirements controller', () => {
})
})
})

describe('GET /return-requirements/{sessionId}/abstraction-period', () => {
const options = {
method: 'GET',
url: '/return-requirements/64924759-8142-4a08-9d1e-1e902cd9d316/abstraction-period',
auth: {
strategy: 'session',
credentials: { scope: ['billing'] }
}
}

describe('when the request succeeds', () => {
it('returns the page successfully', async () => {
const response = await server.inject(options)

expect(response.statusCode).to.equal(200)
expect(response.payload).to.contain('Enter the abstraction period for the return requirement')
})
})
})
})
Loading