Skip to content

Commit d13e917

Browse files
Revert "VIA-629 SB & EO Build correct NBS URL, with query parameters."
This reverts commit 6d94a74.
1 parent 2d216d2 commit d13e917

16 files changed

+66
-107
lines changed

src/_lambda/content-cache-hydrator/handler.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ jest.mock("@src/_lambda/content-cache-hydrator/content-change-detector");
2222
jest.mock("@src/_lambda/content-cache-hydrator/invalidate-cache");
2323
jest.mock("@src/services/content-api/parsers/content-filter-service");
2424
jest.mock("@src/services/content-api/parsers/content-styling-service");
25-
jest.mock("@src/services/nbs/nbs-service", () => ({
26-
buildNbsUrlWithQueryParams: jest.fn(),
27-
}));
2825

2926
jest.mock("@src/utils/requestContext", () => ({
3027
asyncLocalStorage: {

src/app/_components/nbs/NBSBookingAction.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
import { useBrowserContext } from "@src/app/_components/context/BrowserContext";
44
import { SSO_TO_NBS_ROUTE } from "@src/app/api/sso-to-nbs/constants";
5-
import { UrlPathFragment, VaccineInfo, VaccineType } from "@src/models/vaccine";
5+
import { UrlPathFragment, VaccineInfo } from "@src/models/vaccine";
6+
import { VaccinesWithNBSBookingAvailable } from "@src/services/nbs/nbs-service";
67
import { ActionLink } from "nhsuk-react-components";
78
import React, { JSX } from "react";
89

910
type RenderOptions = "anchor" | "button" | "actionLink";
1011

1112
interface NBSBookingActionForVaccineProps {
12-
vaccineType: VaccineType;
13+
vaccineType: VaccinesWithNBSBookingAvailable;
1314
displayText: string;
1415
renderAs: RenderOptions;
1516
reduceBottomPadding: boolean;

src/app/_components/nbs/PharmacyBookingInfo.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { NBSBookingActionForVaccine } from "@src/app/_components/nbs/NBSBookingAction";
2-
import { VaccineInfo, VaccineType } from "@src/models/vaccine";
2+
import { VaccineInfo } from "@src/models/vaccine";
3+
import { VaccinesWithNBSBookingAvailable } from "@src/services/nbs/nbs-service";
34
import React, { JSX } from "react";
45

56
type PharmacyBookingProps = {
6-
vaccineType: VaccineType;
7+
vaccineType: VaccinesWithNBSBookingAvailable;
78
};
89

910
const PharmacyBookingInfo = ({ vaccineType }: PharmacyBookingProps): JSX.Element => {

src/app/_components/vaccine-custom/RSVPregnancyInfo.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import { PharmacyBookingInfo } from "@src/app/_components/nbs/PharmacyBookingInfo";
22
import NonUrgentCareCard from "@src/app/_components/nhs-frontend/NonUrgentCareCard";
33
import { HEADINGS } from "@src/app/constants";
4-
import { VaccineType } from "@src/models/vaccine";
4+
import { VaccinesWithNBSBookingAvailable } from "@src/services/nbs/nbs-service";
55
import React, { JSX } from "react";
66

7-
const RSVPregnancyInfo = (props: { vaccineType: VaccineType; howToGetVaccineOrFallback: JSX.Element }): JSX.Element => {
7+
const RSVPregnancyInfo = (props: {
8+
vaccineType: VaccinesWithNBSBookingAvailable;
9+
howToGetVaccineOrFallback: JSX.Element;
10+
}): JSX.Element => {
811
return (
912
<>
1013
<NonUrgentCareCard

src/models/vaccine.ts

Lines changed: 17 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { Brand } from "@src/utils/types";
33
export type NhsNumber = Brand<string, "NhsNumber">;
44
export type UrlPathFragment = Brand<string, "UrlPathFragment">;
55
export type Filename = Brand<string, "Filename">;
6-
export type NbsCampaign = Brand<string, "NbsCampaign">;
76

87
enum VaccineType {
98
RSV = "RSV",
@@ -41,7 +40,6 @@ export type VaccineDetails = {
4140
contentPath: UrlPathFragment;
4241
cacheFilename: Filename;
4342
nbsPath: UrlPathFragment;
44-
nbsCampaign: NbsCampaign;
4543
supressWarningCallout?: boolean;
4644
moreInformationHeadersFromContentApi?: boolean;
4745
};
@@ -72,7 +70,6 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
7270
contentPath: "vaccinations/rsv-vaccine" as UrlPathFragment,
7371
cacheFilename: "rsv-vaccine.json" as Filename,
7472
nbsPath: "rsv" as UrlPathFragment,
75-
nbsCampaign: "vita-RSV-booking" as NbsCampaign,
7673
},
7774
[VaccineType.RSV_PREGNANCY]: {
7875
urlPath: "rsv-pregnancy" as UrlPathFragment,
@@ -92,8 +89,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
9289
removeHowToGetExpanderFromMoreInformationSection: true,
9390
contentPath: "vaccinations/rsv-vaccine" as UrlPathFragment,
9491
cacheFilename: "rsv-vaccine.json" as Filename,
95-
nbsPath: "rsv" as UrlPathFragment,
96-
nbsCampaign: "vita-RSV-booking" as NbsCampaign,
92+
nbsPath: "rsv-pregnancy" as UrlPathFragment,
9793
},
9894
[VaccineType.TD_IPV_3_IN_1]: {
9995
urlPath: "td-ipv-vaccine-3-in-1-teenage-booster" as UrlPathFragment,
@@ -112,8 +108,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
112108
personalisedEligibilityStatusRequired: false,
113109
contentPath: "vaccinations/td-ipv-vaccine-3-in-1-teenage-booster" as UrlPathFragment,
114110
cacheFilename: "td-ipv-vaccine-3-in-1-teenage-booster.json" as Filename,
115-
nbsPath: "unknown" as UrlPathFragment,
116-
nbsCampaign: "unknown" as NbsCampaign,
111+
nbsPath: "td-ipv-vaccine-3-in-1-teenage-booster" as UrlPathFragment,
117112
},
118113
[VaccineType.VACCINE_6_IN_1]: {
119114
urlPath: "6-in-1-vaccine" as UrlPathFragment,
@@ -130,8 +125,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
130125
personalisedEligibilityStatusRequired: false,
131126
contentPath: "vaccinations/6-in-1-vaccine" as UrlPathFragment,
132127
cacheFilename: "6-in-1-vaccine.json" as Filename,
133-
nbsPath: "unknown" as UrlPathFragment,
134-
nbsCampaign: "unknown" as NbsCampaign,
128+
nbsPath: "6-in-1-vaccine" as UrlPathFragment,
135129
},
136130
[VaccineType.ROTAVIRUS]: {
137131
urlPath: "rotavirus-vaccine" as UrlPathFragment,
@@ -148,8 +142,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
148142
personalisedEligibilityStatusRequired: false,
149143
contentPath: "vaccinations/rotavirus-vaccine" as UrlPathFragment,
150144
cacheFilename: "rotavirus-vaccine.json" as Filename,
151-
nbsPath: "unknown" as UrlPathFragment,
152-
nbsCampaign: "unknown" as NbsCampaign,
145+
nbsPath: "rotavirus-vaccine" as UrlPathFragment,
153146
},
154147
[VaccineType.HPV]: {
155148
urlPath: "hpv-vaccine" as UrlPathFragment,
@@ -166,8 +159,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
166159
personalisedEligibilityStatusRequired: false,
167160
contentPath: "vaccinations/hpv-vaccine" as UrlPathFragment,
168161
cacheFilename: "hpv-vaccine.json" as Filename,
169-
nbsPath: "unknown" as UrlPathFragment,
170-
nbsCampaign: "unknown" as NbsCampaign,
162+
nbsPath: "hpv-vaccine" as UrlPathFragment,
171163
supressWarningCallout: true,
172164
},
173165
[VaccineType.MENB_CHILDREN]: {
@@ -185,8 +177,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
185177
personalisedEligibilityStatusRequired: false,
186178
contentPath: "vaccinations/menb-vaccine-for-children" as UrlPathFragment,
187179
cacheFilename: "menb-vaccine-for-children.json" as Filename,
188-
nbsPath: "unknown" as UrlPathFragment,
189-
nbsCampaign: "unknown" as NbsCampaign,
180+
nbsPath: "menb-vaccine-for-children" as UrlPathFragment,
190181
},
191182
[VaccineType.MMR]: {
192183
urlPath: "mmr-vaccine" as UrlPathFragment,
@@ -203,8 +194,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
203194
personalisedEligibilityStatusRequired: false,
204195
contentPath: "vaccinations/mmr-vaccine" as UrlPathFragment,
205196
cacheFilename: "mmr-vaccine.json" as Filename,
206-
nbsPath: "unknown" as UrlPathFragment,
207-
nbsCampaign: "unknown" as NbsCampaign,
197+
nbsPath: "mmr-vaccine" as UrlPathFragment,
208198
},
209199
[VaccineType.PNEUMOCOCCAL]: {
210200
urlPath: "pneumococcal-vaccine" as UrlPathFragment,
@@ -221,8 +211,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
221211
personalisedEligibilityStatusRequired: false,
222212
contentPath: "vaccinations/pneumococcal-vaccine" as UrlPathFragment,
223213
cacheFilename: "pneumococcal-vaccine.json" as Filename,
224-
nbsPath: "unknown" as UrlPathFragment,
225-
nbsCampaign: "unknown" as NbsCampaign,
214+
nbsPath: "pneumococcal-vaccine" as UrlPathFragment,
226215
},
227216
[VaccineType.SHINGLES]: {
228217
urlPath: "shingles-vaccine" as UrlPathFragment,
@@ -239,9 +228,8 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
239228
personalisedEligibilityStatusRequired: false,
240229
contentPath: "vaccinations/shingles-vaccine" as UrlPathFragment,
241230
cacheFilename: "shingles-vaccine.json" as Filename,
242-
nbsPath: "unknown" as UrlPathFragment,
231+
nbsPath: "shingles-vaccine" as UrlPathFragment,
243232
supressWarningCallout: true,
244-
nbsCampaign: "unknown" as NbsCampaign,
245233
},
246234
[VaccineType.MENACWY]: {
247235
urlPath: "menacwy-vaccine" as UrlPathFragment,
@@ -258,8 +246,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
258246
personalisedEligibilityStatusRequired: false,
259247
contentPath: "vaccinations/menacwy-vaccine" as UrlPathFragment,
260248
cacheFilename: "menacwy-vaccine.json" as Filename,
261-
nbsPath: "unknown" as UrlPathFragment,
262-
nbsCampaign: "unknown" as NbsCampaign,
249+
nbsPath: "menacwy-vaccine" as UrlPathFragment,
263250
supressWarningCallout: true,
264251
},
265252
[VaccineType.VACCINE_4_IN_1]: {
@@ -277,8 +264,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
277264
personalisedEligibilityStatusRequired: false,
278265
contentPath: "vaccinations/4-in-1-preschool-booster-vaccine" as UrlPathFragment,
279266
cacheFilename: "4-in-1-preschool-booster-vaccine.json" as Filename,
280-
nbsPath: "unknown" as UrlPathFragment,
281-
nbsCampaign: "unknown" as NbsCampaign,
267+
nbsPath: "4-in-1-preschool-booster-vaccine" as UrlPathFragment,
282268
},
283269
[VaccineType.WHOOPING_COUGH]: {
284270
urlPath: "whooping-cough-vaccination" as UrlPathFragment,
@@ -298,8 +284,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
298284
personalisedEligibilityStatusRequired: false,
299285
contentPath: "pregnancy/keeping-well/whooping-cough-vaccination" as UrlPathFragment,
300286
cacheFilename: "whooping-cough-vaccination.json" as Filename,
301-
nbsPath: "unknown" as UrlPathFragment,
302-
nbsCampaign: "unknown" as NbsCampaign,
287+
nbsPath: "whooping-cough-vaccination" as UrlPathFragment,
303288
},
304289
[VaccineType.HIB_MENC]: {
305290
urlPath: "hib-menc-vaccine" as UrlPathFragment,
@@ -316,8 +301,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
316301
personalisedEligibilityStatusRequired: false,
317302
contentPath: "vaccinations/hib-menc-vaccine" as UrlPathFragment,
318303
cacheFilename: "hib-menc-vaccine.json" as Filename,
319-
nbsPath: "unknown" as UrlPathFragment,
320-
nbsCampaign: "unknown" as NbsCampaign,
304+
nbsPath: "hib-menc-vaccine" as UrlPathFragment,
321305
},
322306
[VaccineType.FLU_IN_PREGNANCY]: {
323307
urlPath: "flu-vaccine-in-pregnancy" as UrlPathFragment,
@@ -335,8 +319,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
335319
personalisedEligibilityStatusRequired: false,
336320
contentPath: "pregnancy/keeping-well/flu-jab" as UrlPathFragment,
337321
cacheFilename: "flu-jab.json" as Filename,
338-
nbsPath: "unknown" as UrlPathFragment,
339-
nbsCampaign: "unknown" as NbsCampaign,
322+
nbsPath: "flu-vaccine-in-pregnancy" as UrlPathFragment,
340323
moreInformationHeadersFromContentApi: true,
341324
},
342325
[VaccineType.COVID_19]: {
@@ -355,7 +338,6 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
355338
contentPath: "vaccinations/covid-19-vaccine" as UrlPathFragment,
356339
cacheFilename: "covid-19-vaccine.json" as Filename,
357340
nbsPath: "covid" as UrlPathFragment,
358-
nbsCampaign: "vita-COVID-booking" as NbsCampaign,
359341
},
360342
[VaccineType.FLU_FOR_ADULTS]: {
361343
urlPath: "flu-vaccine" as UrlPathFragment,
@@ -372,8 +354,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
372354
personalisedEligibilityStatusRequired: false,
373355
contentPath: "vaccinations/flu-vaccine" as UrlPathFragment,
374356
cacheFilename: "flu-vaccine.json" as Filename,
375-
nbsPath: "unknown" as UrlPathFragment,
376-
nbsCampaign: "unknown" as NbsCampaign,
357+
nbsPath: "path-to-be-removed" as UrlPathFragment,
377358
},
378359
[VaccineType.FLU_FOR_CHILDREN]: {
379360
urlPath: "flu-vaccine-for-children" as UrlPathFragment,
@@ -390,8 +371,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
390371
personalisedEligibilityStatusRequired: false,
391372
contentPath: "vaccinations/child-flu-vaccine" as UrlPathFragment,
392373
cacheFilename: "child-flu-vaccine.json" as Filename,
393-
nbsPath: "unknown" as UrlPathFragment,
394-
nbsCampaign: "unknown" as NbsCampaign,
374+
nbsPath: "path-to-be-removed" as UrlPathFragment,
395375
},
396376
[VaccineType.FLU_FOR_SCHOOL_AGED_CHILDREN]: {
397377
urlPath: "flu-vaccine-for-school-aged-children" as UrlPathFragment,
@@ -409,8 +389,7 @@ const VaccineInfo: Record<VaccineType, VaccineDetails> = {
409389
personalisedEligibilityStatusRequired: false,
410390
contentPath: "vaccinations/child-flu-vaccine" as UrlPathFragment,
411391
cacheFilename: "child-flu-vaccine.json" as Filename,
412-
nbsPath: "unknown" as UrlPathFragment,
413-
nbsCampaign: "unknown" as NbsCampaign,
392+
nbsPath: "path-to-be-removed" as UrlPathFragment,
414393
},
415394
};
416395

src/services/content-api/content-api.integration.test.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@ const mockMarkdownWithStylingHtml = "<ul><li>sausage</li><li>egg</li><li>chips</
1616
jest.mock("@project/src/app/_components/markdown/MarkdownWithStyling", () => ({
1717
MarkdownWithStyling: () => mockMarkdownWithStylingHtml,
1818
}));
19-
jest.mock("@src/services/nbs/nbs-service", () => ({
20-
buildNbsUrlWithQueryParams: jest.fn(),
21-
}));
2219

2320
const mockRsvResponse = {
2421
Body: new Readable({

src/services/content-api/content-service.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ import { ConfigMock, configBuilder } from "@test-data/config/builders";
1010
jest.mock("@src/services/content-api/gateway/content-reader-service");
1111
jest.mock("@src/utils/config");
1212
jest.mock("sanitize-data", () => ({ sanitize: jest.fn() }));
13-
jest.mock("@src/services/nbs/nbs-service", () => ({
14-
buildNbsUrlWithQueryParams: jest.fn(),
15-
}));
1613
const mockMarkdownWithStylingHtml = "<ul><li>sausage</li><li>egg</li><li>chips</li></ul>";
1714
jest.mock("@project/src/app/_components/markdown/MarkdownWithStyling", () => ({
1815
MarkdownWithStyling: () => mockMarkdownWithStylingHtml,

src/services/content-api/parsers/content-filter-service.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,6 @@ jest.mock("@src/services/content-api/parsers/custom/flu-for-school-aged-children
3434
jest.mock("@src/services/content-api/parsers/custom/covid-19");
3535

3636
jest.mock("sanitize-data", () => ({ sanitize: jest.fn() }));
37-
jest.mock("@src/services/nbs/nbs-service", () => ({
38-
buildNbsUrlWithQueryParams: jest.fn(),
39-
}));
4037

4138
describe("Content Filter", () => {
4239
describe("_extractDescriptionForVaccine", () => {

src/services/content-api/parsers/custom/covid-19.test.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
import { buildFilteredContentForCovid19Vaccine } from "@src/services/content-api/parsers/custom/covid-19";
22
import { ActionDisplayType, ButtonUrl, Content, Label } from "@src/services/eligibility-api/types";
3-
import { buildNbsUrlWithQueryParams } from "@src/services/nbs/nbs-service";
43
import { Campaigns } from "@src/utils/campaigns/types";
54
import config from "@src/utils/config";
65
import { ConfigMock, configBuilder } from "@test-data/config/builders";
76
import { genericVaccineContentAPIResponse } from "@test-data/content-api/data";
87

98
jest.mock("sanitize-data", () => ({ sanitize: jest.fn() }));
10-
jest.mock("@src/services/nbs/nbs-service", () => ({
11-
buildNbsUrlWithQueryParams: jest.fn(),
12-
}));
9+
10+
const nbsUrlFromConfig = new URL("https://test-nbs-url.example.com/sausages");
11+
const nbsBookingPathFromConfig = "/test/path/book";
1312

1413
describe("buildFilteredContentForCovid19Vaccine", () => {
1514
const mockedConfig = config as ConfigMock;
1615

1716
beforeEach(() => {
1817
const defaultConfig = configBuilder()
19-
.withCampaigns(
18+
.withNbsUrl(nbsUrlFromConfig)
19+
.andNbsBookingPath(nbsBookingPathFromConfig)
20+
.andCampaigns(
2021
Campaigns.fromJson(
2122
JSON.stringify({
2223
COVID_19: [
@@ -28,8 +29,6 @@ describe("buildFilteredContentForCovid19Vaccine", () => {
2829
)
2930
.build();
3031
Object.assign(mockedConfig, defaultConfig);
31-
32-
(buildNbsUrlWithQueryParams as jest.Mock).mockResolvedValue(new URL("https://test-nbs-url.example.com/sausages"));
3332
});
3433

3534
jest.useFakeTimers();
@@ -87,7 +86,7 @@ describe("buildFilteredContentForCovid19Vaccine", () => {
8786
content: "## If this applies to you\n\n### Book an appointment online at a pharmacy" as Content,
8887
button: {
8988
label: "Continue to booking" as Label,
90-
url: new URL("https://test-nbs-url.example.com/sausages") as ButtonUrl,
89+
url: new URL("https://test-nbs-url.example.com/sausages/test/path/book/covid") as ButtonUrl,
9190
},
9291
delineator: true,
9392
},

src/services/content-api/parsers/custom/covid-19.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { VaccineType } from "@src/models/vaccine";
1+
import { VaccineInfo, VaccineType } from "@src/models/vaccine";
22
import { buildFilteredContentForStandardVaccine } from "@src/services/content-api/parsers/content-filter-service";
33
import { HeadingWithContent, HeadingWithTypedContent, VaccinePageContent } from "@src/services/content-api/types";
44
import {
@@ -9,7 +9,6 @@ import {
99
Content,
1010
Label,
1111
} from "@src/services/eligibility-api/types";
12-
import { buildNbsUrlWithQueryParams } from "@src/services/nbs/nbs-service";
1312
import config from "@src/utils/config";
1413
import { logger } from "@src/utils/logger";
1514
import { Logger } from "pino";
@@ -52,7 +51,12 @@ export const buildFilteredContentForCovid19Vaccine = async (apiContent: string):
5251
};
5352

5453
async function _buildActions(): Promise<Action[]> {
55-
const nbsURl = (await buildNbsUrlWithQueryParams(VaccineType.COVID_19)) as ButtonUrl;
54+
const nbsBaseUrl = await config.NBS_URL;
55+
const nbsBookingPath = await config.NBS_BOOKING_PATH;
56+
const nbsURl = new URL(
57+
`${nbsBaseUrl.pathname}${nbsBookingPath}/${VaccineInfo.COVID_19.nbsPath}`,
58+
nbsBaseUrl.origin,
59+
) as ButtonUrl;
5660

5761
const nbsBooking: ActionWithButton = {
5862
type: ActionDisplayType.buttonWithInfo,

0 commit comments

Comments
 (0)