Skip to content

Commit e65ef28

Browse files
VIA-301 MD: Add 6-in-1 vaccine page with link to it on vaccines-for-all page
1 parent a5f93e8 commit e65ef28

File tree

5 files changed

+27
-2
lines changed

5 files changed

+27
-2
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ enum AgeSectionTestId {
66
ADULTS = "vaccine-cardlinks-adults",
77
CHILDREN = "vaccine-cardlinks-children",
88
PREGNANCY = "vaccine-cardlinks-pregnancy",
9-
// BABIES = "vaccine-cardlinks-babies"
9+
BABIES = "vaccine-cardlinks-babies",
1010
}
1111

1212
jest.mock("@src/app/_components/nhs-frontend/BackLink", () => jest.fn(() => <div data-testid="back-link"></div>));
@@ -49,6 +49,7 @@ describe("VaccinesForAllAges", () => {
4949
"/vaccines/td-ipv-vaccine-3-in-1-teenage-booster",
5050
AgeSectionTestId.CHILDREN,
5151
);
52+
assertCardLinkIsPresentInSection("6-in-1", "/vaccines/6-in-1-vaccine", AgeSectionTestId.BABIES);
5253
});
5354

5455
it("should render back link", () => {

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,12 @@ const VaccinesForAllAges = (): JSX.Element => {
4141
/>
4242
</ul>
4343
<h2 className="nhsuk-heading-s">Vaccines for babies under 1 year old</h2>
44-
<ul className="nhsapp-cards nhsapp-cards--stacked" data-testid={"vaccine-cardlinks-babies"}></ul>
44+
<ul className="nhsapp-cards nhsapp-cards--stacked" data-testid={"vaccine-cardlinks-babies"}>
45+
<CardLink
46+
title={`${VaccineInfo[VaccineTypes.VACCINE_6_IN_1].cardLinkTitle}`}
47+
link={`/vaccines/${VaccineContentUrlPaths.VACCINE_6_IN_1}`}
48+
/>
49+
</ul>
4550
</MainContent>
4651
</>
4752
);

src/models/vaccine.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,30 @@ enum VaccineTypes {
44
RSV = "RSV",
55
RSV_PREGNANCY = "RSV_PREGNANCY",
66
TD_IPV_3_IN_1 = "TD_IPV_3_IN_1",
7+
VACCINE_6_IN_1 = "VACCINE_6_IN_1",
78
}
89

910
// vaccine suffix paths used by the app (e.g. /vaccines/"rsv")
1011
enum VaccineContentUrlPaths {
1112
RSV = "rsv",
1213
RSV_PREGNANCY = "rsv-pregnancy",
1314
TD_IPV_3_IN_1 = "td-ipv-vaccine-3-in-1-teenage-booster",
15+
VACCINE_6_IN_1 = "6-in-1-vaccine",
1416
}
1517

1618
// maps vaccine url path to vaccine type (one to one)
1719
const vaccineUrlPathToType: Record<VaccineContentUrlPaths, VaccineTypes> = {
1820
[VaccineContentUrlPaths.RSV]: VaccineTypes.RSV,
1921
[VaccineContentUrlPaths.RSV_PREGNANCY]: VaccineTypes.RSV_PREGNANCY,
2022
[VaccineContentUrlPaths.TD_IPV_3_IN_1]: VaccineTypes.TD_IPV_3_IN_1,
23+
[VaccineContentUrlPaths.VACCINE_6_IN_1]: VaccineTypes.VACCINE_6_IN_1,
2124
};
2225
// maps vaccine type to url path (one to one)
2326
const vaccineTypeToUrlPath: Record<VaccineTypes, VaccineContentUrlPaths> = {
2427
[VaccineTypes.RSV]: VaccineContentUrlPaths.RSV,
2528
[VaccineTypes.RSV_PREGNANCY]: VaccineContentUrlPaths.RSV_PREGNANCY,
2629
[VaccineTypes.TD_IPV_3_IN_1]: VaccineContentUrlPaths.TD_IPV_3_IN_1,
30+
[VaccineTypes.VACCINE_6_IN_1]: VaccineContentUrlPaths.VACCINE_6_IN_1,
2731
};
2832

2933
export type VaccineDetails = {
@@ -86,6 +90,18 @@ const VaccineInfo: Record<VaccineTypes, VaccineDetails> = {
8690
),
8791
personalisedEligibilityStatusRequired: false,
8892
},
93+
[VaccineTypes.VACCINE_6_IN_1]: {
94+
displayName: {
95+
titleCase: "6-in-1",
96+
midSentenceCase: "6-in-1",
97+
indefiniteArticle: "a",
98+
},
99+
heading: "6-in-1 vaccine",
100+
cardLinkTitle: "6-in-1",
101+
nhsWebpageLink: new URL("https://www.nhs.uk/vaccinations/6-in-1-vaccine/"),
102+
nhsHowToGetWebpageLink: new URL("https://www.nhs.uk/vaccinations/6-in-1-vaccine/#how-to-get-it"),
103+
personalisedEligibilityStatusRequired: false,
104+
},
89105
};
90106

91107
export type NhsNumber = Brand<string, "NhsNumber">;

src/services/content-api/constants.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ import { VaccineTypes } from "@src/models/vaccine";
44
enum VaccineContentPaths {
55
RSV = "rsv-vaccine",
66
TD_IPV_3_IN_1 = "td-ipv-vaccine-3-in-1-teenage-booster",
7+
VACCINE_6_IN_1 = "6-in-1-vaccine",
78
}
89

910
// maps vaccine type to content API paths (many to one, e.g. case RSV)
1011
const vaccineTypeToPath: Record<VaccineTypes, VaccineContentPaths> = {
1112
[VaccineTypes.RSV]: VaccineContentPaths.RSV,
1213
[VaccineTypes.RSV_PREGNANCY]: VaccineContentPaths.RSV,
1314
[VaccineTypes.TD_IPV_3_IN_1]: VaccineContentPaths.TD_IPV_3_IN_1,
15+
[VaccineTypes.VACCINE_6_IN_1]: VaccineContentPaths.VACCINE_6_IN_1,
1416
};
1517

1618
const INVALIDATED_CONTENT_OVERWRITE_VALUE =

src/services/content-api/parsers/content-styling-service.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ const styleHowToGetSection: Record<VaccineTypes, (section: VaccinePageSection, f
115115
[VaccineTypes.RSV]: styleHowToGetSectionForRsv,
116116
[VaccineTypes.RSV_PREGNANCY]: styleHowToGetSectionForRsvPregnancy,
117117
[VaccineTypes.TD_IPV_3_IN_1]: styleSection,
118+
[VaccineTypes.VACCINE_6_IN_1]: styleSection,
118119
};
119120

120121
const getStyledContentForVaccine = async (

0 commit comments

Comments
 (0)