Skip to content

Commit faa6227

Browse files
committed
CCM-12666: add new tests for new pages
1 parent 22c91cd commit faa6227

File tree

3 files changed

+67
-9
lines changed

3 files changed

+67
-9
lines changed

tests/test-team/fixtures/accessibility-analyze.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const makeAxeBuilder = (page: Page) =>
1919
new AxeBuilder({ page }).withTags(['wcag2a', 'wcag2aa']);
2020

2121
export const test = base.extend<AccessibilityFixture>({
22-
analyze: async ({ page }, use) => {
22+
analyze: async ({ baseURL, page }, use) => {
2323
const analyze: Analyze = async (pageUnderTest, opts) => {
2424
const { id, beforeAnalyze } = opts ?? {};
2525

@@ -29,6 +29,14 @@ export const test = base.extend<AccessibilityFixture>({
2929
await beforeAnalyze(pageUnderTest);
3030
}
3131

32+
const pageUrlSegment = (
33+
pageUnderTest.constructor as typeof TemplateMgmtBasePage
34+
).pageUrlSegment;
35+
36+
await expect(page).toHaveURL(
37+
new RegExp(`${baseURL}/templates/${pageUrlSegment}(.*)`) // eslint-disable-line security/detect-non-literal-regexp
38+
);
39+
3240
const results = await makeAxeBuilder(page).analyze();
3341

3442
expect(results.violations).toEqual([]);
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
export * from './campaign-id-required-page';
22
export * from './choose-message-order-page';
3+
export * from './choose-templates-page';
34
export * from './create-message-plan-page';
45
export * from './message-plans-page';
6+
export * from './invalid-message-plan-page';

tests/test-team/template-mgmt-accessibility/routing.accessibility.spec.ts

Lines changed: 56 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,33 +9,75 @@ import { test } from 'fixtures/accessibility-analyze';
99
import {
1010
RoutingChooseMessageOrderPage,
1111
RoutingCreateMessagePlanPage,
12+
RoutingChooseTemplatesPage,
13+
RoutingInvalidMessagePlanPage,
1214
RoutingMessagePlanCampaignIdRequiredPage,
1315
RoutingMessagePlansPage,
1416
} from 'pages/routing';
1517
import { loginAsUser } from 'helpers/auth/login-as-user';
18+
import { randomUUID } from 'node:crypto';
19+
import { TemplateFactory } from 'helpers/factories/template-factory';
20+
import { TemplateStorageHelper } from 'helpers/db/template-storage-helper';
1621

17-
let user: TestUser;
1822
let userWithMultipleCampaigns: TestUser;
19-
2023
const routingStorageHelper = new RoutingConfigStorageHelper();
24+
const templateStorageHelper = new TemplateStorageHelper();
25+
const validRoutingConfigId = randomUUID();
26+
const messageOrder = 'NHSAPP,EMAIL,SMS,LETTER';
2127

2228
test.describe('Routing - Accessibility', () => {
2329
test.beforeAll(async () => {
2430
const authHelper = createAuthHelper();
2531

26-
user = await authHelper.getTestUser(testUsers.User1.userId);
32+
const user = await authHelper.getTestUser(testUsers.User1.userId);
2733

2834
userWithMultipleCampaigns = await authHelper.getTestUser(
2935
testUsers.UserWithMultipleCampaigns.userId
3036
);
3137

32-
await routingStorageHelper.seed([
33-
RoutingConfigFactory.create(user).dbEntry,
34-
]);
38+
const templateIds = {
39+
NHSAPP: randomUUID(),
40+
SMS: randomUUID(),
41+
LETTER: randomUUID(),
42+
};
43+
44+
const routingConfig = RoutingConfigFactory.createForMessageOrder(
45+
user,
46+
messageOrder,
47+
{
48+
id: validRoutingConfigId,
49+
name: 'Test plan with some templates',
50+
}
51+
)
52+
.addTemplate('NHSAPP', templateIds.NHSAPP)
53+
.addTemplate('SMS', templateIds.SMS)
54+
.addTemplate('LETTER', templateIds.LETTER).dbEntry;
55+
56+
const templates = [
57+
TemplateFactory.createNhsAppTemplate(
58+
templateIds.NHSAPP,
59+
user,
60+
'Test NHS App template'
61+
),
62+
TemplateFactory.createSmsTemplate(
63+
templateIds.SMS,
64+
user,
65+
'Test SMS template'
66+
),
67+
TemplateFactory.uploadLetterTemplate(
68+
templateIds.LETTER,
69+
user,
70+
'Test Letter template'
71+
),
72+
];
73+
74+
await routingStorageHelper.seed([routingConfig]);
75+
await templateStorageHelper.seedTemplateData(templates);
3576
});
3677

3778
test.afterAll(async () => {
3879
await routingStorageHelper.deleteSeeded();
80+
await templateStorageHelper.deleteSeededTemplates();
3981
});
4082

4183
test('Message plans', async ({ page, analyze }) =>
@@ -44,17 +86,23 @@ test.describe('Routing - Accessibility', () => {
4486
test('Campaign required', async ({ page, analyze }) =>
4587
analyze(new RoutingMessagePlanCampaignIdRequiredPage(page)));
4688

89+
test('Invalid message plans', async ({ page, analyze }) =>
90+
analyze(new RoutingInvalidMessagePlanPage(page)));
91+
4792
test('Choose message order', async ({ page, analyze }) =>
4893
analyze(new RoutingChooseMessageOrderPage(page)));
4994

95+
test('Choose template', async ({ page, analyze }) =>
96+
analyze(new RoutingChooseTemplatesPage(page), {
97+
id: validRoutingConfigId,
98+
}));
99+
50100
test('Choose message order - error', async ({ page, analyze }) =>
51101
analyze(new RoutingChooseMessageOrderPage(page), {
52102
beforeAnalyze: (p) => p.clickContinueButton(),
53103
}));
54104

55105
test.describe('client has multiple campaigns', () => {
56-
const messageOrder = 'NHSAPP,EMAIL,SMS,LETTER';
57-
58106
test.use({ storageState: { cookies: [], origins: [] } });
59107

60108
test.beforeEach(async ({ page }) => {

0 commit comments

Comments
 (0)