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

BR-59 Show warning message following merge/un-merge #41

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all 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
76 changes: 76 additions & 0 deletions integration_tests/e2e/domainEvent.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
context('Domain Event checks', () => {
it('Basic Details Merge Alert', () => {
cy.visit('/basic-details/00000000-0000-0000-0000-100000000101')
cy.get('#reviewAlert').should('exist')
})

it('Warning Details Merge Alert', () => {
cy.visit('/warning-details/00000000-0000-0000-0000-100000000101')
cy.get('#reviewAlert').should('exist')
})

it('Warning Type Merge Alert', () => {
cy.visit('/warning-type/00000000-0000-0000-0000-100000000101')
cy.get('#reviewAlert').should('exist')
})

it('Next Appointment Merge Alert', () => {
cy.visit('/next-appointment/00000000-0000-0000-0000-100000000101')
cy.get('#reviewAlert').should('exist')
})

it('Check your report Merge Alert', () => {
cy.visit('/check-your-report/00000000-0000-0000-0000-100000000101')
cy.get('#reviewAlert').should('exist')
})

it('Basic Details UnMerge Alert', () => {
cy.visit('/basic-details/00000000-0000-0000-0000-100000000102')
cy.get('#reviewAlert').should('exist')
})

it('Warning Details UnMerge Alert', () => {
cy.visit('/warning-details/00000000-0000-0000-0000-100000000102')
cy.get('#reviewAlert').should('exist')
})

it('Warning Type UnMerge Alert', () => {
cy.visit('/warning-type/00000000-0000-0000-0000-100000000102')
cy.get('#reviewAlert').should('exist')
})

it('Next Appointment UnMerge Alert', () => {
cy.visit('/next-appointment/00000000-0000-0000-0000-100000000102')
cy.get('#reviewAlert').should('exist')
})

it('Check your report UnMerge Alert', () => {
cy.visit('/check-your-report/00000000-0000-0000-0000-100000000102')
cy.get('#reviewAlert').should('exist')
})

it('Basic Details No Alert', () => {
cy.visit('/basic-details/00000000-0000-0000-0000-000000000001')
cy.get('#reviewAlert').should('not.exist')
})

it('Warning Details No Alert', () => {
cy.visit('/warning-details/00000000-0000-0000-0000-000000000001')
cy.get('#reviewAlert').should('not.exist')
})

it('Warning Type No Alert', () => {
cy.visit('/warning-type/00000000-0000-0000-0000-000000000001')
cy.get('#reviewAlert').should('not.exist')
})

it('Next Appointment No Alert', () => {
cy.visit('/next-appointment/00000000-0000-0000-0000-000000000001')
cy.get('#reviewAlert').should('not.exist')
})

it('Check your report No Alert', () => {
cy.visit('/check-your-report/00000000-0000-0000-0000-000000000001')
cy.get('#reviewAlert').should('not.exist')
})
})
2 changes: 2 additions & 0 deletions server/data/breachNoticeApiClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ export interface BreachNotice {
nextAppointmentSaved: boolean
useDefaultAddress: boolean
useDefaultReplyAddress: boolean
reviewRequiredDate: Date
reviewEvent: string
breachNoticeContactList: BreachNoticeContact[]
breachNoticeRequirementList: BreachNoticeRequirement[]
optionalNumberChecked: boolean
Expand Down
2 changes: 2 additions & 0 deletions server/views/pages/basic-details.njk
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@
</div>

<div class="govuk-grid-column-two-thirds">
{% include "partials/review-required.njk" %}

<h1 class="govuk-heading-l">Breach Notice - Basic Details</h1>

<h2 class="govuk-heading-m">Title and Full Name</h2>
Expand Down
2 changes: 2 additions & 0 deletions server/views/pages/check-your-report.njk
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
</div>

<div class="govuk-grid-column-two-thirds">
{% include "partials/review-required.njk" %}

<h1 class="govuk-heading-x1">Breach Notice - Check Your Answers</h1>

<div class="govuk-summary-card">
Expand Down
1 change: 1 addition & 0 deletions server/views/pages/next-appointment.njk
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
</div>

<div class="govuk-grid-column-two-thirds">
{% include "partials/review-required.njk" %}

<h1 class="govuk-heading-l">Breach Notice - Next Appointment</h1>

Expand Down
1 change: 1 addition & 0 deletions server/views/pages/warning-details.njk
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
{% include "pages/side-nav.njk" %}
</div>
<div class="govuk-grid-column-two-thirds">
{% include "partials/review-required.njk" %}
<h1
class="govuk-heading-x1">{{ applicationName + " - " + breachNotice.breachNoticeTypeDescription + " Details" }}</h1>
<h2 class="govuk-heading-m">
Expand Down
144 changes: 73 additions & 71 deletions server/views/pages/warning-type.njk
Original file line number Diff line number Diff line change
Expand Up @@ -5,85 +5,87 @@

{% block content %}

{% from "moj/components/side-navigation/macro.njk" import mojSideNavigation %}
{% from "govuk/components/radios/macro.njk" import govukRadios %}
{% from "govuk/components/select/macro.njk" import govukSelect %}
{% from "govuk/components/button/macro.njk" import govukButton %}
{% from "moj/components/date-picker/macro.njk" import mojDatePicker %}
{% from "govuk/components/table/macro.njk" import govukTable %}
{% from "govuk/components/select/macro.njk" import govukSelect %}
{% from "moj/components/side-navigation/macro.njk" import mojSideNavigation %}
{% from "govuk/components/radios/macro.njk" import govukRadios %}
{% from "govuk/components/select/macro.njk" import govukSelect %}
{% from "govuk/components/button/macro.njk" import govukButton %}
{% from "moj/components/date-picker/macro.njk" import mojDatePicker %}
{% from "govuk/components/table/macro.njk" import govukTable %}
{% from "govuk/components/select/macro.njk" import govukSelect %}

<form method="post">
{% set errorList =[
{ text: errorMessages.warningType.text, href: "#warning-type" } if errorMessages.warningType else None,
{ text: errorMessages.sentenceType.text, href: "#sentence-type" } if errorMessages.sentenceType else None
] | reject("undefined") %}
<form method="post">
{% set errorList =[
{ text: errorMessages.warningType.text, href: "#warning-type" } if errorMessages.warningType else None,
{ text: errorMessages.sentenceType.text, href: "#sentence-type" } if errorMessages.sentenceType else None
] | reject("undefined") %}

{% if errorMessages | length > 0 %}
{% from "govuk/components/error-summary/macro.njk" import govukErrorSummary %}
{{ govukErrorSummary({ titleText: "There is a problem", errorList: errorList }) }}
{% endif %}
{% if errorMessages | length > 0 %}
{% from "govuk/components/error-summary/macro.njk" import govukErrorSummary %}
{{ govukErrorSummary({ titleText: "There is a problem", errorList: errorList }) }}
{% endif %}

<input type="hidden" name="_csrf" value="{{ csrfToken }}">
<div class="govuk-grid-row">
<div class="govuk-grid-column-one-third">
<input type="hidden" name="_csrf" value="{{ csrfToken }}">
<div class="govuk-grid-row">
<div class="govuk-grid-column-one-third">

{% include "pages/side-nav.njk" %}
{% include "pages/side-nav.njk" %}

</div>
</div>

<div class="govuk-grid-column-two-thirds">
<h1 class="govuk-heading-x1">Breach Notice - Warning Type</h1>
<div class="govuk-grid-column-two-thirds">
{% include "partials/review-required.njk" %}

{{ govukRadios({
id: "warning-type",
name: "warningType",
fieldset: {
legend: {
text: "Select a Warning Type",
isPageHeading: false,
classes: "govuk-fieldset__legend--m"
}
},
items: warningTypeRadioButtons,
errorMessage: {
text: errorMessages.warningType.text
} if errorMessages.warningType.text
}) }}
<h1 class="govuk-heading-x1">Breach Notice - Warning Type</h1>

{{ govukSelect({
id: "sentence-type",
name: "sentenceType",
label: {
text: "Select the Sentence Type being enforced",
classes: "govuk-fieldset__legend--m"
},
items: sentenceTypeSelectItems,
errorMessage: {
text: errorMessages.sentenceType.text
} if errorMessages.sentenceType.text
}) }}
{{ govukRadios({
id: "warning-type",
name: "warningType",
fieldset: {
legend: {
text: "Select a Warning Type",
isPageHeading: false,
classes: "govuk-fieldset__legend--m"
}
},
items: warningTypeRadioButtons,
errorMessage: {
text: errorMessages.warningType.text
} if errorMessages.warningType.text
}) }}

<div class="moj-button-group">
{{ govukButton({
text: "Continue",
preventDoubleClick: "true",
type: "submit",
attributes: {
id: "continue-button"
}
}) }}
{{ govukButton({
text: "Save Progress and Close",
href: "/basic-details/"+breachNotice.id,
classes: "govuk-button--secondary",
preventDoubleClick: "true",
attributes: {
id: "close-button"
}
}) }}
</div>
</div>
{{ govukSelect({
id: "sentence-type",
name: "sentenceType",
label: {
text: "Select the Sentence Type being enforced",
classes: "govuk-fieldset__legend--m"
},
items: sentenceTypeSelectItems,
errorMessage: {
text: errorMessages.sentenceType.text
} if errorMessages.sentenceType.text
}) }}

<div class="moj-button-group">
{{ govukButton({
text: "Continue",
preventDoubleClick: "true",
type: "submit",
attributes: {
id: "continue-button"
}
}) }}
{{ govukButton({
text: "Save Progress and Close",
href: "/basic-details/"+breachNotice.id,
classes: "govuk-button--secondary",
preventDoubleClick: "true",
attributes: {
id: "close-button"
}
}) }}
</div>
</form>
</div>
</div>
</form>
{% endblock %}
24 changes: 24 additions & 0 deletions server/views/partials/review-required.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{%- from "moj/components/alert/macro.njk" import mojAlert -%}

{% if breachNotice.reviewRequiredDate != null %}

{% set messageHtml %}
{% if breachNotice.reviewEvent == 'MERGE' %}
A Merge occurred on {{ breachNotice.reviewRequiredDate | toUserDate() }} in NDelius and important details have chaged. This report should be reviewed before proceeding. Please confirm all information or discard this report.
{% endif %}
{% if breachNotice.reviewEvent == 'UNMERGE' %}
A Unmerge occurred on {{ breachNotice.reviewRequiredDate | toUserDate() }} in NDelius and important details have chaged. This report should be reviewed before proceeding. Please confirm all information or discard this report.
{% endif %}
{% endset -%}

{{ mojAlert({
variant: "warning",
title: "Review Required",
showTitleAsHeading: true,
dismissible: false,
html: messageHtml,
attributes: {
id: "reviewAlert"
}
}) }}
{% endif %}
Loading
Loading