Skip to content

Commit 1f33034

Browse files
CCM-11458: Add Choose Message Order screen (#715)
1 parent 0bada93 commit 1f33034

File tree

66 files changed

+1707
-250
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+1707
-250
lines changed

.github/actions/test-types.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"api",
44
"event",
55
"ui-component",
6+
"ui-routing-component",
67
"ui-e2e",
78
"ui-user-timeout"
89
]

frontend/src/__tests__/app/choose-a-template-type/__snapshots__/page.test.tsx.snap

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,16 @@ exports[`ChooseATemplateTypePage 1`] = `
7373
>
7474
<input
7575
class="nhsuk-radios__input"
76-
data-testid="NHS_APP-radio"
77-
id="templateType-NHS_APP"
76+
data-testid="nhsapp-radio"
77+
id="templateType-nhsapp"
7878
name="templateType"
7979
type="radio"
8080
value="NHS_APP"
8181
/>
8282
<label
8383
class="nhsuk-label nhsuk-radios__label"
84-
for="templateType-NHS_APP"
85-
id="templateType-NHS_APP--label"
84+
for="templateType-nhsapp"
85+
id="templateType-nhsapp--label"
8686
>
8787
NHS App message
8888
</label>
@@ -92,16 +92,16 @@ exports[`ChooseATemplateTypePage 1`] = `
9292
>
9393
<input
9494
class="nhsuk-radios__input"
95-
data-testid="EMAIL-radio"
96-
id="templateType-EMAIL"
95+
data-testid="email-radio"
96+
id="templateType-email"
9797
name="templateType"
9898
type="radio"
9999
value="EMAIL"
100100
/>
101101
<label
102102
class="nhsuk-label nhsuk-radios__label"
103-
for="templateType-EMAIL"
104-
id="templateType-EMAIL--label"
103+
for="templateType-email"
104+
id="templateType-email--label"
105105
>
106106
Email
107107
</label>
@@ -111,16 +111,16 @@ exports[`ChooseATemplateTypePage 1`] = `
111111
>
112112
<input
113113
class="nhsuk-radios__input"
114-
data-testid="SMS-radio"
115-
id="templateType-SMS"
114+
data-testid="sms-radio"
115+
id="templateType-sms"
116116
name="templateType"
117117
type="radio"
118118
value="SMS"
119119
/>
120120
<label
121121
class="nhsuk-label nhsuk-radios__label"
122-
for="templateType-SMS"
123-
id="templateType-SMS--label"
122+
for="templateType-sms"
123+
id="templateType-sms--label"
124124
>
125125
Text message (SMS)
126126
</label>
@@ -130,16 +130,16 @@ exports[`ChooseATemplateTypePage 1`] = `
130130
>
131131
<input
132132
class="nhsuk-radios__input"
133-
data-testid="LETTER-radio"
134-
id="templateType-LETTER"
133+
data-testid="letter-radio"
134+
id="templateType-letter"
135135
name="templateType"
136136
type="radio"
137137
value="LETTER"
138138
/>
139139
<label
140140
class="nhsuk-label nhsuk-radios__label"
141-
for="templateType-LETTER"
142-
id="templateType-LETTER--label"
141+
for="templateType-letter"
142+
id="templateType-letter--label"
143143
>
144144
Letter
145145
</label>
Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`ChooseMessageOrderPage 1`] = `
4+
<DocumentFragment>
5+
<main
6+
class="nhsuk-main-wrapper"
7+
id="maincontent"
8+
role="main"
9+
>
10+
<form
11+
action="/action"
12+
>
13+
<input
14+
name="form-id"
15+
readonly=""
16+
type="hidden"
17+
value="choose-message-order"
18+
/>
19+
<input
20+
name="csrf_token"
21+
readonly=""
22+
type="hidden"
23+
value="no_token"
24+
/>
25+
<div
26+
class="nhsuk-form-group"
27+
>
28+
<fieldset
29+
class="nhsuk-fieldset"
30+
>
31+
<legend
32+
class="nhsuk-fieldset__legend nhsuk-fieldset__legend--l"
33+
data-testid="messageOrder-form__legend"
34+
>
35+
<h1
36+
class="nhsuk-fieldset__heading"
37+
>
38+
Choose a message order
39+
</h1>
40+
</legend>
41+
<div
42+
class="nhsuk-form-group"
43+
>
44+
<div
45+
class="nhsuk-hint"
46+
id="messageOrder--hint"
47+
>
48+
Select one option
49+
</div>
50+
<div
51+
aria-describedby="messageOrder--hint"
52+
class="nhsuk-radios"
53+
id="messageOrder"
54+
>
55+
<div
56+
class="nhsuk-radios__item"
57+
>
58+
<input
59+
class="nhsuk-radios__input"
60+
data-testid="nhsapp-radio"
61+
id="messageOrder-nhsapp"
62+
name="messageOrder"
63+
type="radio"
64+
value="NHSAPP"
65+
/>
66+
<label
67+
class="nhsuk-label nhsuk-radios__label"
68+
for="messageOrder-nhsapp"
69+
id="messageOrder-nhsapp--label"
70+
>
71+
NHS App only
72+
</label>
73+
</div>
74+
<div
75+
class="nhsuk-radios__item"
76+
>
77+
<input
78+
class="nhsuk-radios__input"
79+
data-testid="nhsapp-email-radio"
80+
id="messageOrder-nhsapp-email"
81+
name="messageOrder"
82+
type="radio"
83+
value="NHSAPP,EMAIL"
84+
/>
85+
<label
86+
class="nhsuk-label nhsuk-radios__label"
87+
for="messageOrder-nhsapp-email"
88+
id="messageOrder-nhsapp-email--label"
89+
>
90+
NHS App, Email
91+
</label>
92+
</div>
93+
<div
94+
class="nhsuk-radios__item"
95+
>
96+
<input
97+
class="nhsuk-radios__input"
98+
data-testid="nhsapp-sms-radio"
99+
id="messageOrder-nhsapp-sms"
100+
name="messageOrder"
101+
type="radio"
102+
value="NHSAPP,SMS"
103+
/>
104+
<label
105+
class="nhsuk-label nhsuk-radios__label"
106+
for="messageOrder-nhsapp-sms"
107+
id="messageOrder-nhsapp-sms--label"
108+
>
109+
NHS App, Text message
110+
</label>
111+
</div>
112+
<div
113+
class="nhsuk-radios__item"
114+
>
115+
<input
116+
class="nhsuk-radios__input"
117+
data-testid="nhsapp-email-sms-radio"
118+
id="messageOrder-nhsapp-email-sms"
119+
name="messageOrder"
120+
type="radio"
121+
value="NHSAPP,EMAIL,SMS"
122+
/>
123+
<label
124+
class="nhsuk-label nhsuk-radios__label"
125+
for="messageOrder-nhsapp-email-sms"
126+
id="messageOrder-nhsapp-email-sms--label"
127+
>
128+
NHS App, Email, Text message
129+
</label>
130+
</div>
131+
<div
132+
class="nhsuk-radios__item"
133+
>
134+
<input
135+
class="nhsuk-radios__input"
136+
data-testid="nhsapp-sms-email-radio"
137+
id="messageOrder-nhsapp-sms-email"
138+
name="messageOrder"
139+
type="radio"
140+
value="NHSAPP,SMS,EMAIL"
141+
/>
142+
<label
143+
class="nhsuk-label nhsuk-radios__label"
144+
for="messageOrder-nhsapp-sms-email"
145+
id="messageOrder-nhsapp-sms-email--label"
146+
>
147+
NHS App, Text message, Email
148+
</label>
149+
</div>
150+
<div
151+
class="nhsuk-radios__item"
152+
>
153+
<input
154+
class="nhsuk-radios__input"
155+
data-testid="nhsapp-sms-letter-radio"
156+
id="messageOrder-nhsapp-sms-letter"
157+
name="messageOrder"
158+
type="radio"
159+
value="NHSAPP,SMS,LETTER"
160+
/>
161+
<label
162+
class="nhsuk-label nhsuk-radios__label"
163+
for="messageOrder-nhsapp-sms-letter"
164+
id="messageOrder-nhsapp-sms-letter--label"
165+
>
166+
NHS App, Text message, Letter
167+
</label>
168+
</div>
169+
<div
170+
class="nhsuk-radios__item"
171+
>
172+
<input
173+
class="nhsuk-radios__input"
174+
data-testid="nhsapp-email-sms-letter-radio"
175+
id="messageOrder-nhsapp-email-sms-letter"
176+
name="messageOrder"
177+
type="radio"
178+
value="NHSAPP,EMAIL,SMS,LETTER"
179+
/>
180+
<label
181+
class="nhsuk-label nhsuk-radios__label"
182+
for="messageOrder-nhsapp-email-sms-letter"
183+
id="messageOrder-nhsapp-email-sms-letter--label"
184+
>
185+
NHS App, Email, Text message, Letter
186+
</label>
187+
</div>
188+
<div
189+
class="nhsuk-radios__item"
190+
>
191+
<input
192+
class="nhsuk-radios__input"
193+
data-testid="letter-radio"
194+
id="messageOrder-letter"
195+
name="messageOrder"
196+
type="radio"
197+
value="LETTER"
198+
/>
199+
<label
200+
class="nhsuk-label nhsuk-radios__label"
201+
for="messageOrder-letter"
202+
id="messageOrder-letter--label"
203+
>
204+
Letter only
205+
</label>
206+
</div>
207+
</div>
208+
</div>
209+
</fieldset>
210+
</div>
211+
<button
212+
aria-disabled="false"
213+
class="nhsuk-button"
214+
data-testid="submit-button"
215+
id="choose-message-order-submit-button"
216+
type="submit"
217+
>
218+
Save and continue
219+
</button>
220+
<a
221+
class="inline-block nhsuk-u-font-size-19 nhsuk-u-margin-left-3 nhsuk-u-padding-top-3"
222+
href="/message-plans"
223+
>
224+
Go back
225+
</a>
226+
</form>
227+
</main>
228+
</DocumentFragment>
229+
`;
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { render } from '@testing-library/react';
2+
import ChooseMessageOrderPage, {
3+
generateMetadata,
4+
} from '@app/message-plans/choose-message-order/page';
5+
import { TemplateFormState } from 'nhs-notify-web-template-management-utils';
6+
import content from '@content/content';
7+
8+
const { pageTitle } = content.components.chooseMessageOrder;
9+
10+
jest.mock('next/navigation', () => ({
11+
redirect: () => {
12+
throw new Error('Simulated redirect');
13+
},
14+
15+
RedirectType: {
16+
push: 'push',
17+
replace: 'replace',
18+
},
19+
}));
20+
21+
jest.mock('react', () => {
22+
const originalModule = jest.requireActual('react');
23+
24+
return {
25+
...originalModule,
26+
useActionState: (
27+
_: (
28+
formState: TemplateFormState,
29+
formData: FormData
30+
) => Promise<TemplateFormState>,
31+
initialState: TemplateFormState
32+
) => [initialState, '/action'],
33+
};
34+
});
35+
36+
test('ChooseMessageOrderPage', async () => {
37+
const page = await ChooseMessageOrderPage();
38+
39+
const container = render(page);
40+
41+
expect(await generateMetadata()).toEqual({ title: pageTitle });
42+
expect(container.asFragment()).toMatchSnapshot();
43+
});

0 commit comments

Comments
 (0)