Skip to content

Commit 0d7d44d

Browse files
VIA-620 SB Fix inconsistencies in headings.
Restore vaccine.ts as single point of truth for vaccine data.
1 parent 04bb6f8 commit 0d7d44d

File tree

7 files changed

+66
-50
lines changed

7 files changed

+66
-50
lines changed

e2e/constants.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ export const AppPageDetails: Record<PageName, PageDetails> = {
8989
},
9090
"menb-children": {
9191
url: "/vaccines/menb-vaccine-for-children",
92-
heading: "MenB vaccine",
93-
title: `MenB vaccine - ${SERVICE_HEADING} - ${NHS_TITLE_SUFFIX}`,
92+
heading: "MenB vaccine for children",
93+
title: `MenB vaccine for children - ${SERVICE_HEADING} - ${NHS_TITLE_SUFFIX}`,
9494
snapshotFilename: "default-menb-vaccine-for-children.png",
9595
},
9696
mmr: {
@@ -125,8 +125,8 @@ export const AppPageDetails: Record<PageName, PageDetails> = {
125125
},
126126
"whooping-cough": {
127127
url: "/vaccines/whooping-cough-vaccination",
128-
heading: "Whooping cough vaccination in pregnancy",
129-
title: `Whooping cough vaccination in pregnancy - ${SERVICE_HEADING} - ${NHS_TITLE_SUFFIX}`,
128+
heading: "Whooping cough vaccine in pregnancy",
129+
title: `Whooping cough vaccine in pregnancy - ${SERVICE_HEADING} - ${NHS_TITLE_SUFFIX}`,
130130
snapshotFilename: "default-whooping-cough.png",
131131
},
132132
"hib-menc": {

src/app/_components/nhs-app/CardLinkWithDescription.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import Link from "next/link";
22

33
interface CardLinkProps {
44
title: string;
5-
description: string;
5+
description?: string;
66
link: string;
77
}
88

@@ -14,9 +14,11 @@ const CardLinkWithDescription = ({ title, description, link }: CardLinkProps) =>
1414
<Link prefetch={false} href={link} className="nhsapp-card__link nhsuk-link--no-visited-state">
1515
{title}
1616
</Link>
17-
<div className="nhsapp-card__below">
18-
<p className="nhsapp-card__description">{description}</p>
19-
</div>
17+
{description && (
18+
<div className="nhsapp-card__below">
19+
<p className="nhsapp-card__description">{description}</p>
20+
</div>
21+
)}
2022
</div>
2123
<svg
2224
className="nhsapp-icon nhsapp-icon--chevron-right"

src/app/vaccines-during-pregnancy/page.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jest.mock("@src/app/_components/nhs-frontend/BackLink", () => jest.fn(() => <div
77
describe("VaccinesDuringPregnancy", () => {
88
const vaccines = [
99
{
10-
name: "Whooping cough (Pertussis)",
10+
name: "Whooping cough (pertussis) in pregnancy",
1111
description: "Around 20 weeks",
1212
link: "/vaccines/whooping-cough-vaccination",
1313
},

src/app/vaccines-during-pregnancy/page.tsx

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import CardLinkWithDescription from "@src/app/_components/nhs-app/CardLinkWithDe
22
import BackLink from "@src/app/_components/nhs-frontend/BackLink";
33
import MainContent from "@src/app/_components/nhs-frontend/MainContent";
44
import { NHS_TITLE_SUFFIX, VACCINES_FOR_PREGNANT_PAGE } from "@src/app/constants";
5+
import { VaccineInfo, pregnancyVaccines } from "@src/models/vaccine";
56
import Link from "next/link";
67
import React, { JSX } from "react";
78

@@ -13,16 +14,14 @@ const VaccinesDuringPregnancy = (): JSX.Element => {
1314
<MainContent>
1415
<h1 className={"nhsuk-heading-xl nhsuk-u-margin-bottom-5"}>{VACCINES_FOR_PREGNANT_PAGE}</h1>
1516
<ul className="nhsapp-cards nhsapp-cards--stacked">
16-
<CardLinkWithDescription
17-
title={"Whooping cough (Pertussis)"}
18-
description={"Around 20 weeks"}
19-
link={"/vaccines/whooping-cough-vaccination"}
20-
/>
21-
<CardLinkWithDescription
22-
title={"RSV in pregnancy"}
23-
description={"From 28 weeks"}
24-
link={"/vaccines/rsv-pregnancy"}
25-
/>
17+
{pregnancyVaccines.map((type) => (
18+
<CardLinkWithDescription
19+
key={type}
20+
title={VaccineInfo[type].cardLinkTitle}
21+
description={VaccineInfo[type].cardLinkDescription}
22+
link={`/vaccines/${VaccineInfo[type].urlPath}`}
23+
/>
24+
))}
2625
</ul>
2726
<Link href={"/vaccines-for-all-ages"} className={"nhsuk-button nhsuk-button--secondary"}>
2827
View vaccines for all ages

src/app/vaccines-for-all-ages/page.test.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,11 @@ describe("VaccinesForAllAges", () => {
5959
);
6060
assertCardLinkIsPresentInSection("MenACWY", "/vaccines/menacwy-vaccine", AgeSectionTestId.CHILDREN);
6161
assertCardLinkIsPresentInSection("HPV", "/vaccines/hpv-vaccine", AgeSectionTestId.CHILDREN);
62-
assertCardLinkIsPresentInSection("MMR", "/vaccines/mmr-vaccine", AgeSectionTestId.CHILDREN);
62+
assertCardLinkIsPresentInSection(
63+
"MMR (measles, mumps and rubella)",
64+
"/vaccines/mmr-vaccine",
65+
AgeSectionTestId.CHILDREN,
66+
);
6367
assertCardLinkIsPresentInSection("MenB", "/vaccines/menb-vaccine-for-children", AgeSectionTestId.CHILDREN);
6468
assertCardLinkIsPresentInSection("Pneumococcal", "/vaccines/pneumococcal-vaccine", AgeSectionTestId.CHILDREN);
6569
assertCardLinkIsPresentInSection(

src/app/vaccines-for-all-ages/page.tsx

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,10 @@ import CardLink from "@src/app/_components/nhs-app/CardLink";
22
import BackLink from "@src/app/_components/nhs-frontend/BackLink";
33
import MainContent from "@src/app/_components/nhs-frontend/MainContent";
44
import { NHS_TITLE_SUFFIX, VACCINES_FOR_ALL_AGES_PAGE } from "@src/app/constants";
5-
import { VaccineInfo, VaccineType } from "@src/models/vaccine";
5+
import { VaccineInfo, adultVaccines, babyVaccines, childVaccines, pregnancyVaccines } from "@src/models/vaccine";
66
import React, { JSX } from "react";
77

88
const VaccinesForAllAges = (): JSX.Element => {
9-
const adultVaccines: VaccineType[] = [VaccineType.RSV, VaccineType.SHINGLES, VaccineType.PNEUMOCOCCAL];
10-
const pregnancyVaccines: VaccineType[] = [VaccineType.WHOOPING_COUGH, VaccineType.RSV_PREGNANCY];
11-
const childVaccines: VaccineType[] = [
12-
VaccineType.TD_IPV_3_IN_1,
13-
VaccineType.MENACWY,
14-
VaccineType.HPV,
15-
VaccineType.VACCINE_4_IN_1,
16-
VaccineType.MMR,
17-
VaccineType.MENB_CHILDREN,
18-
VaccineType.PNEUMOCOCCAL,
19-
VaccineType.HIB_MENC,
20-
];
21-
const babyVaccines: VaccineType[] = [
22-
VaccineType.VACCINE_6_IN_1,
23-
VaccineType.ROTAVIRUS,
24-
VaccineType.PNEUMOCOCCAL,
25-
VaccineType.MENB_CHILDREN,
26-
];
27-
289
return (
2910
<>
3011
<title>{`${VACCINES_FOR_ALL_AGES_PAGE} - ${NHS_TITLE_SUFFIX}`}</title>

src/models/vaccine.ts

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export type VaccineDetails = {
2626
displayName: displayName;
2727
heading: string;
2828
cardLinkTitle: string;
29+
cardLinkDescription?: string;
2930
nhsWebpageLink: URL;
3031
nhsHowToGetWebpageLink: URL;
3132
personalisedEligibilityStatusRequired: boolean;
@@ -71,6 +72,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
7172
},
7273
heading: "RSV vaccine in pregnancy",
7374
cardLinkTitle: "RSV in pregnancy",
75+
cardLinkDescription: "From 28 weeks",
7476
nhsWebpageLink: new URL("https://www.nhs.uk/vaccinations/rsv-vaccine/"),
7577
nhsHowToGetWebpageLink: new URL("https://www.nhs.uk/vaccinations/rsv-vaccine/#how-to-get-it"),
7678
personalisedEligibilityStatusRequired: false,
@@ -153,7 +155,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
153155
midSentenceCase: "MenB",
154156
indefiniteArticle: "an",
155157
},
156-
heading: "MenB vaccine",
158+
heading: "MenB vaccine for children",
157159
cardLinkTitle: "MenB",
158160
nhsWebpageLink: new URL("https://www.nhs.uk/vaccinations/menb-vaccine-for-children/"),
159161
nhsHowToGetWebpageLink: new URL("https://www.nhs.uk/vaccinations/menb-vaccine-for-children/#how-to-get-it"),
@@ -170,7 +172,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
170172
indefiniteArticle: "an",
171173
},
172174
heading: "MMR vaccine",
173-
cardLinkTitle: "MMR",
175+
cardLinkTitle: "MMR (measles, mumps and rubella)",
174176
nhsWebpageLink: new URL("https://www.nhs.uk/vaccinations/mmr-vaccine/"),
175177
nhsHowToGetWebpageLink: new URL("https://www.nhs.uk/vaccinations/mmr-vaccine/#how-to-get-it"),
176178
personalisedEligibilityStatusRequired: false,
@@ -229,8 +231,8 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
229231
[VaccineType.VACCINE_4_IN_1]: {
230232
urlPath: "4-in-1-preschool-booster-vaccine" as UrlPathFragment,
231233
displayName: {
232-
titleCase: "4-in-1 pre-school booster vaccine",
233-
midSentenceCase: "4-in-1 pre-school booster vaccine",
234+
titleCase: "4-in-1 pre-school booster",
235+
midSentenceCase: "4-in-1 pre-school booster",
234236
indefiniteArticle: "a",
235237
},
236238
heading: "4-in-1 pre-school booster vaccine",
@@ -245,12 +247,13 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
245247
[VaccineType.WHOOPING_COUGH]: {
246248
urlPath: "whooping-cough-vaccination" as UrlPathFragment,
247249
displayName: {
248-
titleCase: "Whooping cough vaccination in pregnancy",
249-
midSentenceCase: "whooping cough vaccination",
250+
titleCase: "Whooping cough vaccine in pregnancy",
251+
midSentenceCase: "whooping cough",
250252
indefiniteArticle: "a",
251253
},
252-
heading: "Whooping cough vaccination in pregnancy",
254+
heading: "Whooping cough vaccine in pregnancy",
253255
cardLinkTitle: "Whooping cough (pertussis) in pregnancy",
256+
cardLinkDescription: "Around 20 weeks",
254257
nhsWebpageLink: new URL("https://www.nhs.uk/pregnancy/keeping-well/whooping-cough-vaccination/"),
255258
nhsHowToGetWebpageLink: new URL(
256259
"https://www.nhs.uk/pregnancy/keeping-well/whooping-cough-vaccination/#how-to-get-it",
@@ -263,8 +266,8 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
263266
[VaccineType.HIB_MENC]: {
264267
urlPath: "hib-menc-vaccine" as UrlPathFragment,
265268
displayName: {
266-
titleCase: "Hib/MenC vaccine",
267-
midSentenceCase: "Hib/MenC vaccine",
269+
titleCase: "Hib/MenC",
270+
midSentenceCase: "Hib/MenC",
268271
indefiniteArticle: "a",
269272
},
270273
heading: "Hib/MenC vaccine",
@@ -284,4 +287,31 @@ Object.entries(VaccineInfo).forEach(([vaccineType, vaccineDetails]) => {
284287
vaccineUrlPathToVaccineType.set(vaccineDetails.urlPath, vaccineType as VaccineType);
285288
});
286289

287-
export { VaccineType, VaccineInfo, vaccineUrlPathToVaccineType };
290+
const adultVaccines: VaccineType[] = [VaccineType.RSV, VaccineType.SHINGLES, VaccineType.PNEUMOCOCCAL];
291+
const pregnancyVaccines: VaccineType[] = [VaccineType.WHOOPING_COUGH, VaccineType.RSV_PREGNANCY];
292+
const childVaccines: VaccineType[] = [
293+
VaccineType.TD_IPV_3_IN_1,
294+
VaccineType.MENACWY,
295+
VaccineType.HPV,
296+
VaccineType.VACCINE_4_IN_1,
297+
VaccineType.MMR,
298+
VaccineType.MENB_CHILDREN,
299+
VaccineType.PNEUMOCOCCAL,
300+
VaccineType.HIB_MENC,
301+
];
302+
const babyVaccines: VaccineType[] = [
303+
VaccineType.VACCINE_6_IN_1,
304+
VaccineType.ROTAVIRUS,
305+
VaccineType.PNEUMOCOCCAL,
306+
VaccineType.MENB_CHILDREN,
307+
];
308+
309+
export {
310+
VaccineType,
311+
VaccineInfo,
312+
vaccineUrlPathToVaccineType,
313+
adultVaccines,
314+
pregnancyVaccines,
315+
childVaccines,
316+
babyVaccines,
317+
};

0 commit comments

Comments
 (0)