Skip to content

Commit 4877dc4

Browse files
committed
CCM-15018: add automated tests for banners on message-plan template previews
1 parent c201aae commit 4877dc4

File tree

7 files changed

+193
-21
lines changed

7 files changed

+193
-21
lines changed

tests/test-team/helpers/template-mgmt-common.steps.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ export const assertRequestProofBannerVisible = async (
325325
);
326326
});
327327

328-
export const assertAndClickTestMessageBanner = async (
328+
export const assertAndClickTestMessageBannerLink = async (
329329
previewPage: TemplateMgmtPreviewBasePage,
330330
expectedURL: string
331331
) =>
@@ -339,9 +339,4 @@ export const assertAndClickTestMessageBanner = async (
339339
await expect(newPage).toHaveURL(expectedURL);
340340

341341
await newPage.close();
342-
343-
// Test button (same page navigation)
344-
await previewPage.sendTestMessageButton.click();
345-
346-
await expect(previewPage.page).toHaveURL(expectedURL);
347342
});

tests/test-team/template-mgmt-component-tests/email/template-mgmt-preview-email-page.component.spec.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
assertBackLinkBottom,
88
assertAndClickBackLinkTop,
99
assertRequestProofBannerVisible,
10-
assertAndClickTestMessageBanner,
10+
assertAndClickTestMessageBannerLink,
1111
} from '../../helpers/template-mgmt-common.steps';
1212
import {
1313
assertFooterLinks,
@@ -343,10 +343,14 @@ test.describe('Preview Email message template Page', () => {
343343
await expect(previewPage.continueButton).toBeHidden();
344344
await expect(previewPage.requestProofMessageBanner).toBeHidden();
345345

346-
await assertAndClickTestMessageBanner(
347-
previewPage,
348-
`${baseURL}/templates/send-test-email/${templates.digitalProofing.id}`
349-
);
346+
const expectedUrl = `${baseURL}/templates/send-test-email/${templates.digitalProofing.id}`;
347+
348+
await assertAndClickTestMessageBannerLink(previewPage, expectedUrl);
349+
350+
// Test button (same page navigation)
351+
await previewPage.sendTestMessageButton.click();
352+
353+
await expect(previewPage.page).toHaveURL(expectedUrl);
350354
});
351355
});
352356
});

tests/test-team/template-mgmt-component-tests/nhs-app/template-mgmt-preview-nhs-app-page.component.spec.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
assertBackLinkBottom,
88
assertAndClickBackLinkTop,
99
assertRequestProofBannerVisible,
10-
assertAndClickTestMessageBanner,
10+
assertAndClickTestMessageBannerLink,
1111
} from '../../helpers/template-mgmt-common.steps';
1212
import {
1313
assertFooterLinks,
@@ -345,10 +345,14 @@ test.describe('Preview NHS App template Page', () => {
345345
await expect(previewPage.continueButton).toBeHidden();
346346
await expect(previewPage.requestProofMessageBanner).toBeHidden();
347347

348-
await assertAndClickTestMessageBanner(
349-
previewPage,
350-
`${baseURL}/templates/send-test-nhs-app-message/${templates.digitalProofing.id}`
351-
);
348+
const expectedUrl = `${baseURL}/templates/send-test-nhs-app-message/${templates.digitalProofing.id}`;
349+
350+
await assertAndClickTestMessageBannerLink(previewPage, expectedUrl);
351+
352+
// Test button (same page navigation)
353+
await previewPage.sendTestMessageButton.click();
354+
355+
await expect(previewPage.page).toHaveURL(expectedUrl);
352356
});
353357
});
354358
});

tests/test-team/template-mgmt-component-tests/sms/template-mgmt-preview-sms-page.component.spec.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
assertBackLinkBottom,
88
assertAndClickBackLinkTop,
99
assertRequestProofBannerVisible,
10-
assertAndClickTestMessageBanner,
10+
assertAndClickTestMessageBannerLink,
1111
} from '../../helpers/template-mgmt-common.steps';
1212
import {
1313
assertFooterLinks,
@@ -341,10 +341,14 @@ test.describe('Preview SMS message template Page', () => {
341341
await expect(previewPage.continueButton).toBeHidden();
342342
await expect(previewPage.requestProofMessageBanner).toBeHidden();
343343

344-
await assertAndClickTestMessageBanner(
345-
previewPage,
346-
`${baseURL}/templates/send-test-text-message/${templates.digitalProofing.id}`
347-
);
344+
const expectedUrl = `${baseURL}/templates/send-test-text-message/${templates.digitalProofing.id}`;
345+
346+
await assertAndClickTestMessageBannerLink(previewPage, expectedUrl);
347+
348+
// Test button (same page navigation)
349+
await previewPage.sendTestMessageButton.click();
350+
351+
await expect(previewPage.page).toHaveURL(expectedUrl);
348352
});
349353
});
350354
});

tests/test-team/template-mgmt-routing-component-tests/email/preview-email-template.routing-component.spec.ts

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import {
66
assertSkipToMainContent,
77
assertAndClickBackLinkTop,
88
assertBackLinkBottom,
9+
assertRequestProofBannerVisible,
10+
assertAndClickTestMessageBannerLink,
911
} from '../../helpers/template-mgmt-common.steps';
1012
import {
1113
createAuthHelper,
@@ -18,6 +20,7 @@ import { TemplateFactory } from 'helpers/factories/template-factory';
1820
import { RoutingPreviewEmailTemplatePage } from 'pages/routing/email/preview-email-page';
1921
import { RoutingConfigFactory } from 'helpers/factories/routing-config-factory';
2022
import { RoutingConfigStorageHelper } from 'helpers/db/routing-config-storage-helper';
23+
import { loginAsUser } from 'helpers/auth/login-as-user';
2124

2225
const routingConfigStorageHelper = new RoutingConfigStorageHelper();
2326
const templateStorageHelper = new TemplateStorageHelper();
@@ -110,6 +113,11 @@ test.describe('Routing - Preview email template page', () => {
110113
await expect(page.locator('[id="preview-content-message"]')).toHaveText(
111114
templates.EMAIL.message || ''
112115
);
116+
117+
await assertRequestProofBannerVisible(
118+
previewEmailTemplatePage,
119+
templates.EMAIL.id
120+
);
113121
});
114122

115123
test.describe('redirects to invalid template page', () => {
@@ -161,4 +169,53 @@ test.describe('Routing - Preview email template page', () => {
161169
`${baseURL}/templates/message-plans/edit-message-plan/${messagePlans.EMAIL_ROUTING_CONFIG.id}`
162170
);
163171
});
172+
173+
test.describe('email digital proofing enabled', () => {
174+
let digitalProofingEnabledMessagePlanId: string;
175+
let digitalProofingEnabledTemplateId: string;
176+
177+
test.use({ storageState: { cookies: [], origins: [] } });
178+
179+
test.beforeEach(async ({ page }) => {
180+
const digitalProofingEnabledUser = await createAuthHelper().getTestUser(
181+
testUsers.UserDigitalProofingEnabled.userId
182+
);
183+
184+
const proofingPlans = createMessagePlans(digitalProofingEnabledUser);
185+
const proofingTemplates = createTemplates(digitalProofingEnabledUser);
186+
187+
await templateStorageHelper.seedTemplateData([proofingTemplates.EMAIL]);
188+
await routingConfigStorageHelper.seed([
189+
proofingPlans.EMAIL_ROUTING_CONFIG,
190+
]);
191+
192+
digitalProofingEnabledMessagePlanId =
193+
proofingPlans.EMAIL_ROUTING_CONFIG.id;
194+
195+
digitalProofingEnabledTemplateId = proofingTemplates.EMAIL.id;
196+
197+
await loginAsUser(digitalProofingEnabledUser, page);
198+
});
199+
200+
test('loads the email template with "Send a test email" message banner', async ({
201+
page,
202+
baseURL,
203+
}) => {
204+
const previewTemplatePage = new RoutingPreviewEmailTemplatePage(page)
205+
.setPathParam('messagePlanId', digitalProofingEnabledMessagePlanId)
206+
.setPathParam('templateId', digitalProofingEnabledTemplateId)
207+
.setSearchParam('lockNumber', '0');
208+
209+
await previewTemplatePage.loadPage();
210+
211+
await expect(page).toHaveURL(
212+
`${baseURL}/templates/message-plans/choose-email-template/${digitalProofingEnabledMessagePlanId}/preview-template/${digitalProofingEnabledTemplateId}?lockNumber=0`
213+
);
214+
215+
await assertAndClickTestMessageBannerLink(
216+
previewTemplatePage,
217+
`${baseURL}/templates/send-test-email/${digitalProofingEnabledTemplateId}`
218+
);
219+
});
220+
});
164221
});

tests/test-team/template-mgmt-routing-component-tests/nhs-app/preview-nhs-app-template.routing-component.spec.ts

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import {
66
assertSkipToMainContent,
77
assertAndClickBackLinkTop,
88
assertBackLinkBottom,
9+
assertRequestProofBannerVisible,
10+
assertAndClickTestMessageBannerLink,
911
} from '../../helpers/template-mgmt-common.steps';
1012
import {
1113
createAuthHelper,
@@ -18,6 +20,7 @@ import { TemplateFactory } from 'helpers/factories/template-factory';
1820
import { RoutingPreviewNhsAppTemplatePage } from 'pages/routing/nhs-app/preview-nhs-app-page';
1921
import { RoutingConfigFactory } from 'helpers/factories/routing-config-factory';
2022
import { RoutingConfigStorageHelper } from 'helpers/db/routing-config-storage-helper';
23+
import { loginAsUser } from 'helpers/auth/login-as-user';
2124

2225
const routingConfigStorageHelper = new RoutingConfigStorageHelper();
2326
const templateStorageHelper = new TemplateStorageHelper();
@@ -106,6 +109,11 @@ test.describe('Routing - Preview app template page', () => {
106109
await expect(page.locator('[id="preview-content-message"]')).toHaveText(
107110
templates.APP.message || ''
108111
);
112+
113+
await assertRequestProofBannerVisible(
114+
previewNhsAppTemplatePage,
115+
templates.APP.id
116+
);
109117
});
110118

111119
test.describe('redirects to invalid template page', () => {
@@ -163,4 +171,50 @@ test.describe('Routing - Preview app template page', () => {
163171
`${baseURL}/templates/message-plans/edit-message-plan/${messagePlans.APP_ROUTING_CONFIG.id}`
164172
);
165173
});
174+
175+
test.describe('nhs app digital proofing enabled', () => {
176+
let digitalProofingEnabledMessagePlanId: string;
177+
let digitalProofingEnabledTemplateId: string;
178+
179+
test.use({ storageState: { cookies: [], origins: [] } });
180+
181+
test.beforeEach(async ({ page }) => {
182+
const digitalProofingEnabledUser = await createAuthHelper().getTestUser(
183+
testUsers.UserDigitalProofingEnabled.userId
184+
);
185+
186+
const proofingPlans = createMessagePlans(digitalProofingEnabledUser);
187+
const proofingTemplates = createTemplates(digitalProofingEnabledUser);
188+
189+
await templateStorageHelper.seedTemplateData([proofingTemplates.APP]);
190+
await routingConfigStorageHelper.seed([proofingPlans.APP_ROUTING_CONFIG]);
191+
192+
digitalProofingEnabledMessagePlanId = proofingPlans.APP_ROUTING_CONFIG.id;
193+
194+
digitalProofingEnabledTemplateId = proofingTemplates.APP.id;
195+
196+
await loginAsUser(digitalProofingEnabledUser, page);
197+
});
198+
199+
test('loads the NHS App template with "Send a test NHS App message" message banner', async ({
200+
page,
201+
baseURL,
202+
}) => {
203+
const previewTemplatePage = new RoutingPreviewNhsAppTemplatePage(page)
204+
.setPathParam('messagePlanId', digitalProofingEnabledMessagePlanId)
205+
.setPathParam('templateId', digitalProofingEnabledTemplateId)
206+
.setSearchParam('lockNumber', '0');
207+
208+
await previewTemplatePage.loadPage();
209+
210+
await expect(page).toHaveURL(
211+
`${baseURL}/templates/message-plans/choose-nhs-app-template/${digitalProofingEnabledMessagePlanId}/preview-template/${digitalProofingEnabledTemplateId}?lockNumber=0`
212+
);
213+
214+
await assertAndClickTestMessageBannerLink(
215+
previewTemplatePage,
216+
`${baseURL}/templates/send-test-nhs-app-message/${digitalProofingEnabledTemplateId}`
217+
);
218+
});
219+
});
166220
});

tests/test-team/template-mgmt-routing-component-tests/sms/preview-sms-template.routing-component.spec.ts

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import {
66
assertSkipToMainContent,
77
assertAndClickBackLinkTop,
88
assertBackLinkBottom,
9+
assertRequestProofBannerVisible,
10+
assertAndClickTestMessageBannerLink,
911
} from '../../helpers/template-mgmt-common.steps';
1012
import {
1113
createAuthHelper,
@@ -18,6 +20,7 @@ import { TemplateFactory } from 'helpers/factories/template-factory';
1820
import { RoutingPreviewSmsTemplatePage } from 'pages/routing/sms/preview-sms-template-page';
1921
import { RoutingConfigFactory } from 'helpers/factories/routing-config-factory';
2022
import { RoutingConfigStorageHelper } from 'helpers/db/routing-config-storage-helper';
23+
import { loginAsUser } from 'helpers/auth/login-as-user';
2124

2225
const routingConfigStorageHelper = new RoutingConfigStorageHelper();
2326
const templateStorageHelper = new TemplateStorageHelper();
@@ -106,6 +109,11 @@ test.describe('Routing - Preview SMS template page', () => {
106109
await expect(page.locator('[id="preview-content-message"]')).toHaveText(
107110
templates.SMS.message || ''
108111
);
112+
113+
await assertRequestProofBannerVisible(
114+
previewSmsTemplatePage,
115+
templates.SMS.id
116+
);
109117
});
110118

111119
test.describe('redirects to invalid template page', () => {
@@ -157,4 +165,50 @@ test.describe('Routing - Preview SMS template page', () => {
157165
`${baseURL}/templates/message-plans/edit-message-plan/${messagePlans.SMS_ROUTING_CONFIG.id}`
158166
);
159167
});
168+
169+
test.describe('sms digital proofing enabled', () => {
170+
let digitalProofingEnabledMessagePlanId: string;
171+
let digitalProofingEnabledTemplateId: string;
172+
173+
test.use({ storageState: { cookies: [], origins: [] } });
174+
175+
test.beforeEach(async ({ page }) => {
176+
const digitalProofingEnabledUser = await createAuthHelper().getTestUser(
177+
testUsers.UserDigitalProofingEnabled.userId
178+
);
179+
180+
const proofingPlans = createMessagePlans(digitalProofingEnabledUser);
181+
const proofingTemplates = createTemplates(digitalProofingEnabledUser);
182+
183+
await templateStorageHelper.seedTemplateData([proofingTemplates.SMS]);
184+
await routingConfigStorageHelper.seed([proofingPlans.SMS_ROUTING_CONFIG]);
185+
186+
digitalProofingEnabledMessagePlanId = proofingPlans.SMS_ROUTING_CONFIG.id;
187+
188+
digitalProofingEnabledTemplateId = proofingTemplates.SMS.id;
189+
190+
await loginAsUser(digitalProofingEnabledUser, page);
191+
});
192+
193+
test('loads the SMS template with "Send a test text message" message banner', async ({
194+
page,
195+
baseURL,
196+
}) => {
197+
const previewTemplatePage = new RoutingPreviewSmsTemplatePage(page)
198+
.setPathParam('messagePlanId', digitalProofingEnabledMessagePlanId)
199+
.setPathParam('templateId', digitalProofingEnabledTemplateId)
200+
.setSearchParam('lockNumber', '0');
201+
202+
await previewTemplatePage.loadPage();
203+
204+
await expect(page).toHaveURL(
205+
`${baseURL}/templates/message-plans/choose-text-message-template/${digitalProofingEnabledMessagePlanId}/preview-template/${digitalProofingEnabledTemplateId}?lockNumber=0`
206+
);
207+
208+
await assertAndClickTestMessageBannerLink(
209+
previewTemplatePage,
210+
`${baseURL}/templates/send-test-text-message/${digitalProofingEnabledTemplateId}`
211+
);
212+
});
213+
});
160214
});

0 commit comments

Comments
 (0)