@defra-fish/gafl-webapp-service 1.61.0-rc.14 → 1.61.0-rc.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -4
- package/src/handlers/authentication-handler.js +1 -1
- package/src/locales/cy.json +3 -3
- package/src/locales/en.json +3 -3
- package/src/pages/concessions/disability/__tests__/disability-concession.spec.js +7 -21
- package/src/pages/concessions/disability/disability-concession.njk +4 -23
- package/src/pages/concessions/disability/route.js +0 -5
- package/src/pages/concessions/disability/update-transaction.js +1 -1
- package/src/pages/renewals/licence-not-found/licence-not-found.njk +1 -1
- package/src/pages/summary/licence-summary/__tests__/__snapshots__/route.spec.js.snap +5 -5
- package/src/pages/summary/licence-summary/__tests__/route.spec.js +3 -3
- package/src/pages/summary/licence-summary/route.js +11 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defra-fish/gafl-webapp-service",
|
|
3
|
-
"version": "1.61.0-rc.
|
|
3
|
+
"version": "1.61.0-rc.16",
|
|
4
4
|
"description": "The websales frontend for the GAFL service",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"prepare": "gulp --gulpfile build/gulpfile.cjs"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@defra-fish/business-rules-lib": "1.61.0-rc.
|
|
40
|
-
"@defra-fish/connectors-lib": "1.61.0-rc.
|
|
39
|
+
"@defra-fish/business-rules-lib": "1.61.0-rc.16",
|
|
40
|
+
"@defra-fish/connectors-lib": "1.61.0-rc.16",
|
|
41
41
|
"@defra/hapi-gapi": "^2.0.0",
|
|
42
42
|
"@hapi/boom": "^9.1.2",
|
|
43
43
|
"@hapi/catbox-redis": "^6.0.2",
|
|
@@ -79,5 +79,5 @@
|
|
|
79
79
|
"./gafl-jest-matchers.js"
|
|
80
80
|
]
|
|
81
81
|
},
|
|
82
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "a4d24d55c8279ed8fad6436a48312f8542adfada"
|
|
83
83
|
}
|
|
@@ -43,7 +43,7 @@ export default async (request, h) => {
|
|
|
43
43
|
|
|
44
44
|
if (!authenticationResult) {
|
|
45
45
|
payload.referenceNumber = referenceNumber
|
|
46
|
-
await request.cache().helpers.page.setCurrentPermission(IDENTIFY.page, { payload
|
|
46
|
+
await request.cache().helpers.page.setCurrentPermission(IDENTIFY.page, { payload })
|
|
47
47
|
await request.cache().helpers.status.setCurrentPermission({ referenceNumber, authentication: { authorized: false } })
|
|
48
48
|
return h.redirectWithLanguageCode(LICENCE_NOT_FOUND.uri)
|
|
49
49
|
} else {
|
package/src/locales/cy.json
CHANGED
|
@@ -418,8 +418,7 @@
|
|
|
418
418
|
"licence_length_title_other": "Am ba hyd y maent am gael y drwydded?",
|
|
419
419
|
"licence_length_title_you": "Am ba hyd yr hoffech chi gael y drwydded?",
|
|
420
420
|
"licence_num": "Rhif trwydded",
|
|
421
|
-
"licence_not_found_title": "
|
|
422
|
-
"licence_not_found_header": "Ni allwn ddod o hyd i drwydded sy’n cyfateb â'r manylion a roddwyd",
|
|
421
|
+
"licence_not_found_title": "Ni allwn ddod o hyd i drwydded sy’n cyfateb â'r manylion a roddwyd",
|
|
423
422
|
"licence_not_found_body_1": "Gwiriwch eich bod wedi mewnbynnu’r manylion yn gywir - ",
|
|
424
423
|
"licence_not_found_body_previous_page": "ewch yn ôl i’r dudalen flaenorol",
|
|
425
424
|
"licence_not_found_body_2": "Os byddwch yn parhau i weld y dudalen hon gallwch ofyn am gymorth drwy e-bostio ",
|
|
@@ -472,7 +471,8 @@
|
|
|
472
471
|
"licence_start_title_other": "Dyddiad dechrau’r drwydded?",
|
|
473
472
|
"licence_start_title_you": "Pryd yr hoffech i'ch trwydded ddechrau?",
|
|
474
473
|
"licence_start_today_or_within": "Gall y drwydded ddechrau heddiw neu unrhyw ddiwrnod o fewn y ",
|
|
475
|
-
"
|
|
474
|
+
"licence_summary_blue_badge": "Bathodyn Glas",
|
|
475
|
+
"licence_summary_blue_badge_eligible": "Cymwys",
|
|
476
476
|
"licence_summary_change": "Newid",
|
|
477
477
|
"licence_summary_disability_concession": "Consesiwn anabledd",
|
|
478
478
|
"licence_summary_dob": "Dyddiad geni",
|
package/src/locales/en.json
CHANGED
|
@@ -417,8 +417,7 @@
|
|
|
417
417
|
"licence_length_one_day": "1 day licences are valid for 24 hours from the start time that you select.",
|
|
418
418
|
"licence_length_title_other": "How long do they want the licence for?",
|
|
419
419
|
"licence_length_title_you": "How long do you want your licence for?",
|
|
420
|
-
"licence_not_found_title": "
|
|
421
|
-
"licence_not_found_header": "We cannot find a licence matching the details you provided",
|
|
420
|
+
"licence_not_found_title": "We cannot find a licence matching the details you provided",
|
|
422
421
|
"licence_not_found_body_1": "Check you have entered your details correctly - ",
|
|
423
422
|
"licence_not_found_body_previous_page": "go back to the previous page",
|
|
424
423
|
"licence_not_found_body_2": "If you keep seeing this page you can get help by emailing ",
|
|
@@ -472,7 +471,8 @@
|
|
|
472
471
|
"licence_start_title_other": "When should the licence start?",
|
|
473
472
|
"licence_start_title_you": "When would you like your licence to start?",
|
|
474
473
|
"licence_start_today_or_within": "The licence can start today or any day within the next ",
|
|
475
|
-
"
|
|
474
|
+
"licence_summary_blue_badge": "Blue Badge",
|
|
475
|
+
"licence_summary_blue_badge_eligible": "Eligible",
|
|
476
476
|
"licence_summary_change": "Change",
|
|
477
477
|
"licence_summary_disability_concession": "Disability concession",
|
|
478
478
|
"licence_summary_dob": "Date of birth",
|
|
@@ -31,15 +31,6 @@ describe('The disability concession page', () => {
|
|
|
31
31
|
expect(response.headers.location).toHaveValidPathFor(DISABILITY_CONCESSION.uri)
|
|
32
32
|
})
|
|
33
33
|
|
|
34
|
-
it('redirects back to itself on posting blue badge with an empty blue number', async () => {
|
|
35
|
-
const response = await injectWithCookies('POST', DISABILITY_CONCESSION.uri, {
|
|
36
|
-
'disability-concession': disabilityConcessionTypes.blueBadge,
|
|
37
|
-
'blue-badge-number': ''
|
|
38
|
-
})
|
|
39
|
-
expect(response.statusCode).toBe(302)
|
|
40
|
-
expect(response.headers.location).toHaveValidPathFor(DISABILITY_CONCESSION.uri)
|
|
41
|
-
})
|
|
42
|
-
|
|
43
34
|
it('on setting a correct ni number it redirects to the licence-to-start page', async () => {
|
|
44
35
|
const response = await injectWithCookies('POST', DISABILITY_CONCESSION.uri, {
|
|
45
36
|
'disability-concession': disabilityConcessionTypes.pipDla,
|
|
@@ -62,32 +53,28 @@ describe('The disability concession page', () => {
|
|
|
62
53
|
})
|
|
63
54
|
})
|
|
64
55
|
|
|
65
|
-
it('on
|
|
56
|
+
it('on selecting blue badge or meets criteria of bb, it causes a redirect to the licence-to-start page', async () => {
|
|
66
57
|
const response = await injectWithCookies('POST', DISABILITY_CONCESSION.uri, {
|
|
67
|
-
'disability-concession': disabilityConcessionTypes.blueBadge
|
|
68
|
-
'blue-badge-number': '1234'
|
|
58
|
+
'disability-concession': disabilityConcessionTypes.blueBadge
|
|
69
59
|
})
|
|
70
60
|
expect(response.statusCode).toBe(302)
|
|
71
61
|
expect(response.headers.location).toHaveValidPathFor(LICENCE_TO_START.uri)
|
|
72
62
|
})
|
|
73
63
|
|
|
74
|
-
it('on
|
|
64
|
+
it('on selecting blue badge or meets criteria of bb, it adds a disabled concession to the cache', async () => {
|
|
75
65
|
await injectWithCookies('POST', DISABILITY_CONCESSION.uri, {
|
|
76
|
-
'disability-concession': disabilityConcessionTypes.blueBadge
|
|
77
|
-
'blue-badge-number': '1234'
|
|
66
|
+
'disability-concession': disabilityConcessionTypes.blueBadge
|
|
78
67
|
})
|
|
79
68
|
const { payload } = await injectWithCookies('GET', TEST_TRANSACTION.uri)
|
|
80
69
|
expect(concessionHelper.hasDisabled(JSON.parse(payload).permissions[0])).toBeTruthy()
|
|
81
70
|
expect(JSON.parse(payload).permissions[0].concessions[0].proof).toEqual({
|
|
82
|
-
type: CONCESSION_PROOF.blueBadge
|
|
83
|
-
referenceNumber: '1234'
|
|
71
|
+
type: CONCESSION_PROOF.blueBadge
|
|
84
72
|
})
|
|
85
73
|
})
|
|
86
74
|
|
|
87
75
|
it('on setting a disability concession and changing to a 8 day licence and back, the concession is restored', async () => {
|
|
88
76
|
await injectWithCookies('POST', DISABILITY_CONCESSION.uri, {
|
|
89
|
-
'disability-concession': disabilityConcessionTypes.blueBadge
|
|
90
|
-
'blue-badge-number': '1234'
|
|
77
|
+
'disability-concession': disabilityConcessionTypes.blueBadge
|
|
91
78
|
})
|
|
92
79
|
await injectWithCookies('POST', LICENCE_LENGTH.uri, { 'licence-length': '8D' })
|
|
93
80
|
const { payload } = await injectWithCookies('GET', TEST_TRANSACTION.uri)
|
|
@@ -96,8 +83,7 @@ describe('The disability concession page', () => {
|
|
|
96
83
|
const { payload: payload2 } = await injectWithCookies('GET', TEST_TRANSACTION.uri)
|
|
97
84
|
expect(concessionHelper.hasDisabled(JSON.parse(payload2).permissions[0])).toBeTruthy()
|
|
98
85
|
expect(JSON.parse(payload2).permissions[0].concessions[0].proof).toEqual({
|
|
99
|
-
type: CONCESSION_PROOF.blueBadge
|
|
100
|
-
referenceNumber: '1234'
|
|
86
|
+
type: CONCESSION_PROOF.blueBadge
|
|
101
87
|
})
|
|
102
88
|
})
|
|
103
89
|
|
|
@@ -14,10 +14,6 @@
|
|
|
14
14
|
'ni-number': {
|
|
15
15
|
'string.empty': { ref: '#ni-number', text: mssgs.disability_concession_error_ni_empty },
|
|
16
16
|
'string.pattern.base': { ref: '#ni-number', text: mssgs.disability_concession_error_ni_pattern }
|
|
17
|
-
},
|
|
18
|
-
'blue-badge-number': {
|
|
19
|
-
'string.empty': { ref: '#blue-badge-number', text: mssgs.disability_concession_badge_error_msg },
|
|
20
|
-
'string.max': { ref: '#blue-badge-number', text: mssgs.disability_concession_badge_error_msg }
|
|
21
17
|
}
|
|
22
18
|
}
|
|
23
19
|
%}
|
|
@@ -39,20 +35,6 @@
|
|
|
39
35
|
}) }}
|
|
40
36
|
{% endset -%}
|
|
41
37
|
|
|
42
|
-
{% set blueBadge %}
|
|
43
|
-
{{ govukInput({
|
|
44
|
-
label: {
|
|
45
|
-
html: mssgs.disability_concession_badge_error_msg
|
|
46
|
-
},
|
|
47
|
-
id: "blue-badge-number",
|
|
48
|
-
name: "blue-badge-number",
|
|
49
|
-
value: payload['blue-badge-number'],
|
|
50
|
-
classes: "govuk-input--width-20",
|
|
51
|
-
attributes: { maxlength: 25 },
|
|
52
|
-
errorMessage: { text: mssgs.disability_concession_badge_error_msg } if error['blue-badge-number']
|
|
53
|
-
}) }}
|
|
54
|
-
{% endset -%}
|
|
55
|
-
|
|
56
38
|
{% block pageContent %}
|
|
57
39
|
{% if not data.hasJunior and not data.hasSenior %}
|
|
58
40
|
<p class="govuk-hint">{{ mssgs.disability_concession_12_month }}<a href="https://www.gov.uk/government/publications/blue-badge-can-i-get-one/can-i-get-a-blue-badge" class="govuk-link" target="_blank">{{ mssgs.disability_concession_12_month_link }}</a></p>
|
|
@@ -71,13 +53,12 @@
|
|
|
71
53
|
{
|
|
72
54
|
text: mssgs['disability_concession_radio_badge_' ~ suffix],
|
|
73
55
|
value: data.blueBadge,
|
|
74
|
-
checked: payload['disability-concession'] === data.blueBadge
|
|
75
|
-
conditional: { html: blueBadge }
|
|
56
|
+
checked: payload['disability-concession'] === data.blueBadge
|
|
76
57
|
},
|
|
77
58
|
{
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
59
|
+
text: mssgs['disability_concession_radio_no_' ~ suffix],
|
|
60
|
+
value: data.no,
|
|
61
|
+
checked: payload['disability-concession'] === data.no
|
|
81
62
|
}
|
|
82
63
|
],
|
|
83
64
|
errorMessage: { text: mssgs.disability_concession_error_choose_option } if error['disability-concession']
|
|
@@ -14,11 +14,6 @@ const validator = Joi.object({
|
|
|
14
14
|
is: disabilityConcessionTypes.pipDla,
|
|
15
15
|
then: validation.contact.createNationalInsuranceNumberValidator(Joi).required(),
|
|
16
16
|
otherwise: Joi.string().empty('')
|
|
17
|
-
}),
|
|
18
|
-
'blue-badge-number': Joi.alternatives().conditional('disability-concession', {
|
|
19
|
-
is: disabilityConcessionTypes.blueBadge,
|
|
20
|
-
then: Joi.string().max(25).required(),
|
|
21
|
-
otherwise: Joi.string().empty('')
|
|
22
17
|
})
|
|
23
18
|
}).options({ abortEarly: false, allowUnknown: true })
|
|
24
19
|
|
|
@@ -19,7 +19,7 @@ export default async request => {
|
|
|
19
19
|
concessionHelper.addDisabled(permission, CONCESSION_PROOF.NI, payload['ni-number'])
|
|
20
20
|
Object.assign(permission, { licenceLength: '12M', licenceStartTime: '0' })
|
|
21
21
|
} else if (payload['disability-concession'] === disabilityConcessionTypes.blueBadge) {
|
|
22
|
-
concessionHelper.addDisabled(permission, CONCESSION_PROOF.blueBadge
|
|
22
|
+
concessionHelper.addDisabled(permission, CONCESSION_PROOF.blueBadge)
|
|
23
23
|
Object.assign(permission, { licenceLength: '12M', licenceStartTime: '0' })
|
|
24
24
|
} else {
|
|
25
25
|
concessionHelper.removeDisabled(permission)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
{% block content %}
|
|
7
7
|
<div class="govuk-grid-row">
|
|
8
8
|
<div class="govuk-grid-column-two-thirds">
|
|
9
|
-
<h1 class="govuk-heading-l">{{ mssgs.
|
|
9
|
+
<h1 class="govuk-heading-l">{{ mssgs.licence_not_found_title }}</h1>
|
|
10
10
|
<p class="govuk-body">
|
|
11
11
|
{{ mssgs.licence_not_found_body_1 }}
|
|
12
12
|
<a class="govuk-link" href="/buy/renew/identify">{{ mssgs.licence_not_found_body_previous_page }}</a>{{ mssgs.full_stop }}
|
|
@@ -599,7 +599,7 @@ Array [
|
|
|
599
599
|
"text": "licence_summary_disability_concession",
|
|
600
600
|
},
|
|
601
601
|
"value": Object {
|
|
602
|
-
"html": "
|
|
602
|
+
"html": "licence_summary_none",
|
|
603
603
|
},
|
|
604
604
|
},
|
|
605
605
|
Object {
|
|
@@ -930,15 +930,15 @@ Array [
|
|
|
930
930
|
},
|
|
931
931
|
"href": "/buy/disability-concession",
|
|
932
932
|
"text": "contact_summary_change",
|
|
933
|
-
"visuallyHiddenText": "
|
|
933
|
+
"visuallyHiddenText": "licence_summary_blue_badge",
|
|
934
934
|
},
|
|
935
935
|
],
|
|
936
936
|
},
|
|
937
937
|
"key": Object {
|
|
938
|
-
"text": "
|
|
938
|
+
"text": "licence_summary_blue_badge",
|
|
939
939
|
},
|
|
940
940
|
"value": Object {
|
|
941
|
-
"html": "
|
|
941
|
+
"html": "licence_summary_blue_badge_eligible",
|
|
942
942
|
},
|
|
943
943
|
},
|
|
944
944
|
Object {
|
|
@@ -1172,7 +1172,7 @@ Array [
|
|
|
1172
1172
|
"text": "licence_summary_disability_concession",
|
|
1173
1173
|
},
|
|
1174
1174
|
"value": Object {
|
|
1175
|
-
"html": "
|
|
1175
|
+
"html": "licence_summary_none",
|
|
1176
1176
|
},
|
|
1177
1177
|
},
|
|
1178
1178
|
Object {
|
|
@@ -84,7 +84,8 @@ const getMockRequest = ({
|
|
|
84
84
|
licence_type_12m: 'licence_type_12m',
|
|
85
85
|
licence_type_8d: 'licence_type_8d',
|
|
86
86
|
licence_type_1d: 'licence_type_1d',
|
|
87
|
-
|
|
87
|
+
licence_summary_blue_badge: 'licence_summary_blue_badge',
|
|
88
|
+
licence_summary_blue_badge_eligible: 'licence_summary_blue_badge_eligible',
|
|
88
89
|
licence_summary_ni_num: 'licence_summary_ni_num',
|
|
89
90
|
licence_summary_disability_concession: 'licence_summary_disability_concession',
|
|
90
91
|
free: 'gratis',
|
|
@@ -163,8 +164,7 @@ const getMockBlueBadgePermission = () => ({
|
|
|
163
164
|
{
|
|
164
165
|
type: mappingConstants.CONCESSION.DISABLED,
|
|
165
166
|
proof: {
|
|
166
|
-
type: mappingConstants.CONCESSION_PROOF.blueBadge
|
|
167
|
-
referenceNumber: 'AB1 CDE 0 1234F5678'
|
|
167
|
+
type: mappingConstants.CONCESSION_PROOF.blueBadge
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
]
|
|
@@ -70,7 +70,7 @@ class RowGenerator {
|
|
|
70
70
|
|
|
71
71
|
_getConcessionText () {
|
|
72
72
|
if (this.disabled?.proof?.type === CONCESSION_PROOF.blueBadge) {
|
|
73
|
-
return this.labels.
|
|
73
|
+
return this.labels.licence_summary_blue_badge
|
|
74
74
|
} else if (this.disabled?.proof?.type === CONCESSION_PROOF.NI) {
|
|
75
75
|
return this.labels.licence_summary_ni_num
|
|
76
76
|
}
|
|
@@ -93,7 +93,16 @@ class RowGenerator {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
generateConcessionRow () {
|
|
96
|
-
const label =
|
|
96
|
+
const label = (() => {
|
|
97
|
+
if (this.disabled?.proof?.type === CONCESSION_PROOF.blueBadge) {
|
|
98
|
+
return this.labels.licence_summary_blue_badge_eligible
|
|
99
|
+
}
|
|
100
|
+
if (this.disabled?.proof?.type === CONCESSION_PROOF.NI) {
|
|
101
|
+
return this.disabled.proof.referenceNumber
|
|
102
|
+
}
|
|
103
|
+
return this.labels.licence_summary_none
|
|
104
|
+
})()
|
|
105
|
+
|
|
97
106
|
const concessionText = this._getConcessionText()
|
|
98
107
|
return this._generateRow(concessionText, label, DISABILITY_CONCESSION.uri, concessionText, 'change-benefit-check')
|
|
99
108
|
}
|