@@ -4,6 +4,7 @@ import { TemplateMgmtBasePage } from '../pages/template-mgmt-base-page';
44type 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) {
7090export 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) {
160193export 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({
184218export 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 (
0 commit comments