Skip to content

Commit fb080bd

Browse files
CCM-11537: Preview page tests
1 parent 6a4f603 commit fb080bd

File tree

67 files changed

+912
-203
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+912
-203
lines changed

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

Lines changed: 62 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { TemplateMgmtBasePage } from '../pages/template-mgmt-base-page';
44
type CommonStepsProps = {
55
page: TemplateMgmtBasePage;
66
id?: string;
7+
additionalIds?: string[];
78
baseURL?: string;
89
};
910

@@ -35,9 +36,24 @@ const expectedFooterLinks: Record<string, FooterLinkSpec> = {
3536
},
3637
};
3738

38-
export function assertSkipToMainContent({ page, id }: CommonStepsProps) {
39+
const loadPageFromIds = async (
40+
page: TemplateMgmtBasePage,
41+
id?: string,
42+
additionalIds?: string[]
43+
) => {
44+
if (id) {
45+
return await page.loadPage(id, ...(additionalIds ?? []));
46+
}
47+
return await page.loadPage();
48+
};
49+
50+
export function assertSkipToMainContent({
51+
page,
52+
id,
53+
additionalIds,
54+
}: CommonStepsProps) {
3955
return test.step('when user clicks "skip to main content", then page heading is focused', async () => {
40-
await page.loadPage(id);
56+
await loadPageFromIds(page, id, additionalIds);
4157

4258
await page.page.keyboard.press('Tab');
4359

@@ -55,9 +71,13 @@ export function assertSkipToMainContent({ page, id }: CommonStepsProps) {
5571
});
5672
}
5773

58-
export function assertHeaderWhenSignedOut({ page, id }: CommonStepsProps) {
74+
export function assertHeaderWhenSignedOut({
75+
page,
76+
id,
77+
additionalIds,
78+
}: CommonStepsProps) {
5979
return test.step('when user is signed out, then header displays sign in link only', async () => {
60-
await page.loadPage(id);
80+
await loadPageFromIds(page, id, additionalIds);
6181

6282
await expect(page.signInLink).toBeVisible();
6383
await expect(page.signOutLink).toBeHidden();
@@ -70,14 +90,15 @@ export function assertHeaderWhenSignedOut({ page, id }: CommonStepsProps) {
7090
export function assertHeaderWhenSignedIn({
7191
page,
7292
id,
93+
additionalIds,
7394
expectedDisplayName,
7495
expectedClientName,
7596
}: CommonStepsProps & {
7697
expectedDisplayName: string;
7798
expectedClientName: string;
7899
}) {
79100
return test.step('when user is signed in, then header shows display name and client name', async () => {
80-
await page.loadPage(id);
101+
await loadPageFromIds(page, id, additionalIds);
81102

82103
await expect(page.signOutLink).toBeVisible();
83104
await expect(page.signInLink).toBeHidden();
@@ -96,9 +117,13 @@ export function assertHeaderWhenSignedIn({
96117
});
97118
}
98119

99-
export function assertHeaderLogoLink({ page, id }: CommonStepsProps) {
120+
export function assertHeaderLogoLink({
121+
page,
122+
id,
123+
additionalIds,
124+
}: CommonStepsProps & { additionalIds?: string[] }) {
100125
return test.step('header logo is visible, correctly labelled and structured', async () => {
101-
await page.loadPage(id);
126+
await loadPageFromIds(page, id, additionalIds);
102127

103128
const logoLink = page.headerLogoLink;
104129

@@ -134,9 +159,13 @@ export function assertClickHeaderLogoRedirectsToStartPage({
134159
});
135160
}
136161

137-
export function assertSignInLink({ page, id }: CommonStepsProps) {
162+
export function assertSignInLink({
163+
page,
164+
id,
165+
additionalIds,
166+
}: CommonStepsProps & { additionalIds?: string[] }) {
138167
return test.step('when user clicks "Sign in", then user is redirected to "sign in page"', async () => {
139-
await page.loadPage(id);
168+
await loadPageFromIds(page, id, additionalIds);
140169

141170
const link = page.signInLink;
142171

@@ -147,9 +176,13 @@ export function assertSignInLink({ page, id }: CommonStepsProps) {
147176
});
148177
}
149178

150-
export function assertSignOutLink({ page, id }: CommonStepsProps) {
179+
export function assertSignOutLink({
180+
page,
181+
id,
182+
additionalIds,
183+
}: CommonStepsProps & { additionalIds?: string[] }) {
151184
return test.step('"Sign out", should direct user to signout', async () => {
152-
await page.loadPage(id);
185+
await loadPageFromIds(page, id, additionalIds);
153186

154187
const link = page.signOutLink;
155188

@@ -160,14 +193,15 @@ export function assertSignOutLink({ page, id }: CommonStepsProps) {
160193
export function assertHeaderNavigationLinksWhenSignedIn({
161194
page,
162195
id,
196+
additionalIds,
163197
routingEnabled,
164198
}: CommonStepsProps & { routingEnabled: boolean }) {
165199
const description = routingEnabled
166200
? 'Templates and Message plans links'
167201
: 'Templates link only';
168202

169203
return test.step(`header shows ${description} when routing is ${routingEnabled ? 'enabled' : 'disabled'}`, async () => {
170-
await page.loadPage(id);
204+
await loadPageFromIds(page, id, additionalIds);
171205

172206
const nav = page.headerNavigationLinks;
173207

@@ -184,9 +218,10 @@ export function assertHeaderNavigationLinksWhenSignedIn({
184218
export function assertHeaderNavigationLinksWhenSignedOut({
185219
page,
186220
id,
221+
additionalIds,
187222
}: CommonStepsProps) {
188223
return test.step('header does not display navigation links when signed out', async () => {
189-
await page.loadPage(id);
224+
await loadPageFromIds(page, id, additionalIds);
190225

191226
await expect(page.headerNavigationLinks).toHaveCount(0);
192227
});
@@ -197,9 +232,10 @@ export function assertGoBackLink({
197232
id,
198233
baseURL,
199234
expectedUrl,
235+
additionalIds,
200236
}: CommonStepsProps & { expectedUrl: string }) {
201237
return test.step('when user clicks "Go back", then user is redirected to previous page', async () => {
202-
await page.loadPage(id);
238+
await loadPageFromIds(page, id, additionalIds);
203239

204240
await page.goBackLink.click();
205241

@@ -209,17 +245,25 @@ export function assertGoBackLink({
209245
});
210246
}
211247

212-
export function assertGoBackLinkNotPresent({ page, id }: CommonStepsProps) {
248+
export function assertGoBackLinkNotPresent({
249+
page,
250+
id,
251+
additionalIds,
252+
}: CommonStepsProps) {
213253
return test.step('should not display "Go Back" link on page', async () => {
214-
await page.loadPage(id);
254+
await loadPageFromIds(page, id, additionalIds);
215255

216256
await expect(page.goBackLink).toBeHidden();
217257
});
218258
}
219259

220-
export function assertFooterLinks({ page, id }: CommonStepsProps) {
260+
export function assertFooterLinks({
261+
page,
262+
id,
263+
additionalIds,
264+
}: CommonStepsProps) {
221265
return test.step('when page loads, then Page Footer should have the correct links', async () => {
222-
await page.loadPage(id);
266+
await loadPageFromIds(page, id, additionalIds);
223267

224268
const promises = Object.values(expectedFooterLinks).map((linkSpec) =>
225269
expect(

tests/test-team/pages/email/template-mgmt-create-email-page.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { TemplateMgmtMessageFormatting } from '../template-mgmt-message-formatti
33
import { TemplateMgmtBasePageNonDynamic } from '../template-mgmt-base-page-non-dynamic';
44

55
export class TemplateMgmtCreateEmailPage extends TemplateMgmtBasePageNonDynamic {
6-
static readonly pageUrlSegment = 'create-email-template';
6+
static readonly pageUrlSegments = ['create-email-template'];
77

88
public readonly nameInput: Locator;
99

tests/test-team/pages/email/template-mgmt-edit-email-page.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { TemplateMgmtMessageFormatting } from '../template-mgmt-message-formatti
33
import { TemplateMgmtBasePageDynamic } from '../template-mgmt-base-page-dynamic';
44

55
export class TemplateMgmtEditEmailPage extends TemplateMgmtBasePageDynamic {
6-
static readonly pageUrlSegment = 'edit-email-template';
6+
static readonly pageUrlSegments = ['edit-email-template'];
77

88
public readonly nameInput: Locator;
99

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Locator, Page } from '@playwright/test';
22
import { TemplateMgmtPreviewBasePage } from '../template-mgmt-preview-base-page';
33

44
export class TemplateMgmtPreviewEmailPage extends TemplateMgmtPreviewBasePage {
5-
static readonly pageUrlSegment = 'preview-email-template';
5+
static readonly pageUrlSegments = ['preview-email-template'];
66

77
public readonly editRadioOption: Locator;
88

tests/test-team/pages/email/template-mgmt-preview-submitted-email-page.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Locator, Page } from '@playwright/test';
22
import { TemplateMgmtPreviewSubmitedBasePage } from '../template-mgmt-preview-submitted-base-page';
33

44
export class TemplateMgmtPreviewSubmittedEmailPage extends TemplateMgmtPreviewSubmitedBasePage {
5-
static readonly pageUrlSegment = 'preview-submitted-email-template';
5+
static readonly pageUrlSegments = ['preview-submitted-email-template'];
66

77
public readonly subjectLineText: Locator;
88

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { TemplateMgmtSubmitBasePage } from '../template-mgmt-submit-base-page';
22

33
export class TemplateMgmtSubmitEmailPage extends TemplateMgmtSubmitBasePage {
4-
static readonly pageUrlSegment = 'submit-email-template';
4+
static readonly pageUrlSegments = ['submit-email-template'];
55
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { TemplateMgmtTemplateSubmittedBasePage } from '../template-mgmt-template-submitted-base-page';
22

33
export class TemplateMgmtTemplateSubmittedEmailPage extends TemplateMgmtTemplateSubmittedBasePage {
4-
static readonly pageUrlSegment = 'email-template-submitted';
4+
static readonly pageUrlSegments = ['email-template-submitted'];
55
}

tests/test-team/pages/letter/template-mgmt-preview-letter-page.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Locator, Page } from '@playwright/test';
22
import { TemplateMgmtPreviewBasePage } from '../template-mgmt-preview-base-page';
33

44
export class TemplateMgmtPreviewLetterPage extends TemplateMgmtPreviewBasePage {
5-
static readonly pageUrlSegment = 'preview-letter-template';
5+
static readonly pageUrlSegments = ['preview-letter-template'];
66

77
public static readonly urlRegexp = new RegExp(
88
/\/templates\/preview-letter-template\/([\dA-Fa-f-]+)(?:\?from=edit)?$/
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { TemplateMgmtPreviewSubmitedBasePage } from '../template-mgmt-preview-submitted-base-page';
22

33
export class TemplateMgmtPreviewSubmittedLetterPage extends TemplateMgmtPreviewSubmitedBasePage {
4-
static readonly pageUrlSegment = 'preview-submitted-letter-template';
4+
static readonly pageUrlSegments = ['preview-submitted-letter-template'];
55
}

tests/test-team/pages/letter/template-mgmt-submit-letter-page.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { TemplateMgmtSubmitBasePage } from '../template-mgmt-submit-base-page';
22

33
export class TemplateMgmtSubmitLetterPage extends TemplateMgmtSubmitBasePage {
4-
static readonly pageUrlSegment = 'submit-letter-template';
4+
static readonly pageUrlSegments = ['submit-letter-template'];
55

66
public static readonly urlRegexp = new RegExp(
77
/\/templates\/submit-letter-template\/([\dA-Fa-f-]+)$/

0 commit comments

Comments
 (0)