Skip to content

Commit 882ce82

Browse files
authored
Return logs check page - populate Reporting details (#1666)
https://eaflood.atlassian.net/browse/WATER-4806 This PR will focus on populating the "Reporting details" section of the "Check details and enter new volumes or readings" page with data from the session.
1 parent a1ec190 commit 882ce82

File tree

12 files changed

+162
-26
lines changed

12 files changed

+162
-26
lines changed

app/presenters/return-logs/setup/check.presenter.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
* @module CheckPresenter
66
*/
77

8+
const { formatLongDate, sentenceCase } = require('../../base.presenter.js')
9+
810
/**
911
* Formats the data ready for presenting in the `/return-logs/setup/{sessionId}/check` page
1012
*
@@ -13,13 +15,29 @@
1315
* @returns {object} page data needed for the `/return-logs/setup/{sessionId}/check` page
1416
*/
1517
function go(session) {
16-
const { id: sessionId, note, returnReference } = session
18+
const {
19+
id: sessionId,
20+
meterMake,
21+
meterProvided,
22+
meterSerialNumber,
23+
note,
24+
receivedDate,
25+
reported,
26+
returnReference,
27+
units
28+
} = session
1729

1830
return {
31+
meterMake,
32+
meterProvided,
33+
meterSerialNumber,
1934
note: _note(note),
2035
pageTitle: 'Check details and enter new volumes or readings',
36+
returnReceivedDate: formatLongDate(new Date(receivedDate)),
37+
reportingFigures: reported === 'meter-readings' ? 'Meter readings' : sentenceCase(reported),
2138
returnReference,
22-
sessionId
39+
sessionId,
40+
units: units === 'cubic-metres' ? 'Cubic metres' : sentenceCase(units)
2341
}
2442
}
2543

app/presenters/return-logs/setup/single-volume.presenter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function go(session) {
2222
sessionId,
2323
singleVolume: singleVolume ?? null,
2424
singleVolumeQuantity: singleVolumeQuantity ?? null,
25-
units: units === 'cubic-meters' ? 'cubic meters' : units
25+
units: units === 'cubic-metres' ? 'cubic metres' : units
2626
}
2727
}
2828

app/validators/return-logs/setup/units.validator.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
const Joi = require('joi')
99

10-
const VALID_VALUES = ['cubic-meters', 'litres', 'megalitres', 'gallons']
10+
const VALID_VALUES = ['cubic-metres', 'litres', 'megalitres', 'gallons']
1111

1212
/**
1313
* Validates data submitted for the `/return-logs/setup/{sessionId}/units` page

app/views/return-logs/setup/check.njk

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,17 @@
4141
<hr class="govuk-section-break--visible">
4242
</div>
4343

44+
45+
{# Meter details #}
46+
{% set meterDetails %}
47+
{% if meterProvided === 'yes' %}
48+
<div>{{meterMake}}</div><div>{{meterSerialNumber}}</div>
49+
{% else %}
50+
<div>Not provided</div>
51+
{% endif %}
52+
{% endset %}
53+
54+
4455
{# Reporting details #}
4556
<div class="govuk-!-margin-bottom-9">
4657
{{ govukSummaryList({
@@ -55,7 +66,7 @@
5566
text: "Return received"
5667
},
5768
value: {
58-
html: "8 January 2025"
69+
text: returnReceivedDate
5970
},
6071
actions: {
6172
items: [
@@ -72,7 +83,7 @@
7283
text: "Reporting figures"
7384
},
7485
value: {
75-
html: "Volumes"
86+
text: reportingFigures
7687
},
7788
actions: {
7889
items: [
@@ -89,7 +100,7 @@
89100
text: "Meter details"
90101
},
91102
value: {
92-
html: "<div>Meter make</div>" + "<div>Meter serial number</div>"
103+
html: meterDetails
93104
},
94105
actions: {
95106
items: [
@@ -106,7 +117,7 @@
106117
text: "Units"
107118
},
108119
value: {
109-
html: "Cubic meters"
120+
text: units
110121
},
111122
actions: {
112123
items: [
@@ -132,7 +143,7 @@
132143
text: "Month"
133144
},
134145
{
135-
text: "Total cubic meters",
146+
text: "Total cubic metres",
136147
format: "numeric"
137148
},
138149
{

app/views/return-logs/setup/units.njk

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@
4848
},
4949
items: [
5050
{
51-
value: "cubic-meters",
52-
text: "Cubic Meters",
53-
checked: "cubic-meters" === units
51+
value: "cubic-metres",
52+
text: "Cubic Metres",
53+
checked: "cubic-metres" === units
5454
},
5555
{
5656
value: "litres",

test/controllers/return-logs-setup.controller.test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ describe('Return Logs Setup controller', () => {
9696
describe('when a request is valid', () => {
9797
beforeEach(() => {
9898
Sinon.stub(CheckService, 'go').resolves({
99+
meterMake: 'Test meter make',
100+
meterProvided: 'yes',
101+
meterSerialNumber: '098765',
99102
pageTitle: 'Check details and enter new volumes or readings',
100103
returnReference: '1234567',
101104
sessionId
@@ -107,6 +110,8 @@ describe('Return Logs Setup controller', () => {
107110

108111
expect(response.statusCode).to.equal(200)
109112
expect(response.payload).to.contain('Check details and enter new volumes or readings')
113+
expect(response.payload).to.contain('Test meter make')
114+
expect(response.payload).to.contain('098765')
110115
expect(response.payload).to.contain('1234567')
111116
expect(response.payload).to.contain(sessionId)
112117
})

test/presenters/return-logs/setup/check.presenter.test.js

Lines changed: 90 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@ describe('Return Logs Setup - Check presenter', () => {
1616
beforeEach(() => {
1717
session = {
1818
id: 'e840675e-9fb9-4ce1-bf0a-d140f5c57f47',
19-
returnReference: '1234'
19+
meterMake: 'Test meter make',
20+
meterProvided: 'yes',
21+
meterSerialNumber: '098765',
22+
receivedDate: '2025-01-31T00:00:00.000Z',
23+
reported: 'volumes',
24+
returnReference: '1234',
25+
units: 'megalitres'
2026
}
2127
})
2228

@@ -25,6 +31,9 @@ describe('Return Logs Setup - Check presenter', () => {
2531
const result = CheckPresenter.go(session)
2632

2733
expect(result).to.equal({
34+
meterMake: 'Test meter make',
35+
meterProvided: 'yes',
36+
meterSerialNumber: '098765',
2837
note: {
2938
actions: [
3039
{
@@ -35,8 +44,11 @@ describe('Return Logs Setup - Check presenter', () => {
3544
text: 'No notes added'
3645
},
3746
pageTitle: 'Check details and enter new volumes or readings',
47+
returnReceivedDate: '31 January 2025',
48+
reportingFigures: 'Volumes',
3849
returnReference: '1234',
39-
sessionId: session.id
50+
sessionId: session.id,
51+
units: 'Megalitres'
4052
})
4153
})
4254
})
@@ -84,4 +96,80 @@ describe('Return Logs Setup - Check presenter', () => {
8496
})
8597
})
8698
})
99+
100+
describe('the "reportingFigures" property', () => {
101+
describe('when the user has used meter readings', () => {
102+
beforeEach(() => {
103+
session.reported = 'meter-readings'
104+
})
105+
106+
it('returns the method of gathering the figures as "Meter readings"', () => {
107+
const result = CheckPresenter.go(session)
108+
109+
expect(result.reportingFigures).to.equal('Meter readings')
110+
})
111+
})
112+
113+
describe('when the user has used volumes', () => {
114+
beforeEach(() => {
115+
session.reported = 'volumes'
116+
})
117+
118+
it('returns the method of gathering the figures as "Volumes"', () => {
119+
const result = CheckPresenter.go(session)
120+
121+
expect(result.reportingFigures).to.equal('Volumes')
122+
})
123+
})
124+
})
125+
126+
describe('the "units" property', () => {
127+
describe('when the user has used cubic metres', () => {
128+
beforeEach(() => {
129+
session.units = 'cubic-metres'
130+
})
131+
132+
it('returns the unit of measurement as "Cubic metres"', () => {
133+
const result = CheckPresenter.go(session)
134+
135+
expect(result.units).to.equal('Cubic metres')
136+
})
137+
})
138+
139+
describe('when the user has used litres', () => {
140+
beforeEach(() => {
141+
session.units = 'litres'
142+
})
143+
144+
it('returns the unit of measurement as "Litres"', () => {
145+
const result = CheckPresenter.go(session)
146+
147+
expect(result.units).to.equal('Litres')
148+
})
149+
})
150+
151+
describe('when the user has used megalitres', () => {
152+
beforeEach(() => {
153+
session.units = 'megalitres'
154+
})
155+
156+
it('returns the unit of measurement as "Megalitres"', () => {
157+
const result = CheckPresenter.go(session)
158+
159+
expect(result.units).to.equal('Megalitres')
160+
})
161+
})
162+
163+
describe('when the user has used gallons', () => {
164+
beforeEach(() => {
165+
session.units = 'gallons'
166+
})
167+
168+
it('returns the unit of measurement as "Gallons"', () => {
169+
const result = CheckPresenter.go(session)
170+
171+
expect(result.units).to.equal('Gallons')
172+
})
173+
})
174+
})
87175
})

test/presenters/return-logs/setup/single-volume.presenter.test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,15 @@ describe('Return Logs Setup - Single Volume presenter', () => {
7878
})
7979

8080
describe('the "units" property', () => {
81-
describe('when the "units" property is "cubic-meters"', () => {
81+
describe('when the "units" property is "cubic-metres"', () => {
8282
beforeEach(() => {
83-
session.units = 'cubic-meters'
83+
session.units = 'cubic-metres'
8484
})
8585

8686
it('returns the "units" property presenter correctly', () => {
8787
const result = SingleVolumePresenter.go(session)
8888

89-
expect(result.units).to.equal('cubic meters')
89+
expect(result.units).to.equal('cubic metres')
9090
})
9191
})
9292

test/presenters/return-logs/setup/units.presenter.test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@ describe('Return Logs Setup - Units presenter', () => {
3535
})
3636

3737
describe('the "units" property', () => {
38-
describe('when the user has previously selected "Cubic Meters" as the reported type', () => {
38+
describe('when the user has previously selected "Cubic Metres" as the reported type', () => {
3939
beforeEach(() => {
40-
session.units = 'cubic-meters'
40+
session.units = 'cubic-metres'
4141
})
4242

4343
it('returns the "units" property populated to re-select the option', () => {
4444
const result = UnitsPresenter.go(session)
4545

46-
expect(result.units).to.equal('cubic-meters')
46+
expect(result.units).to.equal('cubic-metres')
4747
})
4848
})
4949

test/services/return-logs/setup/check.service.test.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,15 @@ describe('Return Logs Setup - Check service', () => {
1919
let yarStub
2020

2121
before(async () => {
22-
session = await SessionHelper.add({ data: { returnReference: '1234' } })
22+
session = await SessionHelper.add({
23+
data: {
24+
meterProvided: 'no',
25+
receivedDate: '2025-01-31T00:00:00.000Z',
26+
reported: 'volumes',
27+
returnReference: '1234',
28+
units: 'megalitres'
29+
}
30+
})
2331

2432
yarStub = { flash: Sinon.stub().returns([]) }
2533
})
@@ -30,6 +38,9 @@ describe('Return Logs Setup - Check service', () => {
3038

3139
expect(result).to.equal({
3240
activeNavBar: 'search',
41+
meterMake: undefined,
42+
meterProvided: 'no',
43+
meterSerialNumber: undefined,
3344
note: {
3445
actions: [
3546
{
@@ -41,8 +52,11 @@ describe('Return Logs Setup - Check service', () => {
4152
},
4253
notification: undefined,
4354
pageTitle: 'Check details and enter new volumes or readings',
55+
returnReceivedDate: '31 January 2025',
56+
reportingFigures: 'Volumes',
4457
returnReference: '1234',
45-
sessionId: session.id
58+
sessionId: session.id,
59+
units: 'Megalitres'
4660
})
4761
})
4862

test/services/return-logs/setup/single-volume.service.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ describe('Return Logs Setup - Single Volume service', () => {
2020
session = await SessionHelper.add({
2121
data: {
2222
returnReference: '012345',
23-
units: 'cubic-meters'
23+
units: 'cubic-metres'
2424
}
2525
})
2626
})
@@ -43,7 +43,7 @@ describe('Return Logs Setup - Single Volume service', () => {
4343
returnReference: '012345',
4444
singleVolume: null,
4545
singleVolumeQuantity: null,
46-
units: 'cubic meters'
46+
units: 'cubic metres'
4747
},
4848
{ skip: ['sessionId'] }
4949
)

test/validators/return-logs/setup/units.validator.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ describe('Return Logs Setup - Units validator', () => {
1414
let payload
1515

1616
describe('when a valid payload is provided', () => {
17-
describe('because the user selected the "cubic-meters" option', () => {
17+
describe('because the user selected the "cubic-metres" option', () => {
1818
beforeEach(() => {
19-
payload = { units: 'cubic-meters' }
19+
payload = { units: 'cubic-metres' }
2020
})
2121

2222
it('confirms the payload is valid', () => {

0 commit comments

Comments
 (0)