Skip to content

Commit 29220e2

Browse files
committed
test(journey-client): update middleware e2e test
1 parent 15b8329 commit 29220e2

2 files changed

Lines changed: 32 additions & 12 deletions

File tree

e2e/journey-app/main.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ const searchParams = new URLSearchParams(qs);
2121
const config = serverConfigs[searchParams.get('clientId') || 'basic'];
2222

2323
const journeyName = searchParams.get('journey') ?? 'UsernamePassword';
24-
let requestMiddleware: RequestMiddleware[] = [];
24+
let requestMiddleware: RequestMiddleware<'JOURNEY_START' | 'JOURNEY_NEXT' | 'JOURNEY_TERMINATE'>[] =
25+
[];
2526

2627
if (searchParams.get('middleware') === 'true') {
2728
requestMiddleware = [
@@ -30,10 +31,12 @@ if (searchParams.get('middleware') === 'true') {
3031
case 'JOURNEY_START':
3132
req.url.searchParams.set('start-authenticate-middleware', 'start-authentication');
3233
req.headers.append('x-start-authenticate-middleware', 'start-authentication');
34+
req.headers?.set('Accept-Language', 'xx-XX');
3335
break;
3436
case 'JOURNEY_NEXT':
3537
req.url.searchParams.set('authenticate-middleware', 'authentication');
3638
req.headers.append('x-authenticate-middleware', 'authentication');
39+
req.headers?.set('Accept-Language', 'yy-YY');
3740
break;
3841
}
3942
next();
@@ -43,6 +46,7 @@ if (searchParams.get('middleware') === 'true') {
4346
case 'JOURNEY_TERMINATE':
4447
req.url.searchParams.set('end-session-middleware', 'end-session');
4548
req.headers.append('x-end-session-middleware', 'end-session');
49+
req.headers?.set('Accept-Language', 'zz-ZZ');
4650
break;
4751
}
4852
next();

e2e/journey-suites/src/request-middleware.test.ts

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { expect, test } from '@playwright/test';
99
import { asyncEvents } from './utils/async-events.js';
1010
import { username, password } from './utils/demo-user.js';
1111

12-
test.skip('Test happy paths on test page', async ({ page }) => {
12+
test('Test middleware on test page', async ({ page }) => {
1313
const { clickButton, navigate } = asyncEvents(page);
1414
await navigate('/?middleware=true&journey=Login');
1515

@@ -24,7 +24,7 @@ test.skip('Test happy paths on test page', async ({ page }) => {
2424
});
2525

2626
page.on('request', async (req) => {
27-
networkArray.push(`${new URL(req.url()).pathname}, ${req.resourceType()}`);
27+
networkArray.push(req.url().toString());
2828
});
2929

3030
page.on('request', async (req) => {
@@ -46,17 +46,33 @@ test.skip('Test happy paths on test page', async ({ page }) => {
4646
await clickButton('Logout', '/authenticate');
4747

4848
// Test assertions
49-
// test URL query parameters added to URL on networkArray
5049

51-
expect(networkArray).toContain('start-authenticate-middleware, fetch');
52-
expect(networkArray).toContain('authenticate-middleware, fetch');
53-
expect(networkArray).toContain('end-session-middleware, fetch');
50+
// Test URL query parameters added to URL on networkArray
51+
const startRequest = networkArray.find((url) => url.includes('start-authenticate-middleware'));
52+
const nextRequest = networkArray.find((url) => url.includes('authenticate-middleware'));
53+
const endRequest = networkArray.find((url) => url.includes('end-session-middleware'));
5454

55-
expect(
56-
headerArray.find((headers) => headers.get('x-start-authenticate-middleware')),
57-
).toBeTruthy();
58-
expect(headerArray.find((headers) => headers.get('x-authenticate-middleware'))).toBeTruthy();
59-
expect(headerArray.find((headers) => headers.get('x-end-session-middleware'))).toBeTruthy();
55+
expect(startRequest?.includes('start-authenticate-middleware=start-authentication')).toBeTruthy();
56+
expect(nextRequest?.includes('authenticate-middleware=authentication')).toBeTruthy();
57+
expect(endRequest?.includes('end-session-middleware=end-session')).toBeTruthy();
58+
59+
// Check for addition of custom headers
60+
const startHeader = headerArray.find((headers) => headers.get('x-start-authenticate-middleware'));
61+
const nextHeader = headerArray.find((headers) => headers.get('x-authenticate-middleware'));
62+
const endHeader = headerArray.find((headers) => headers.get('x-end-session-middleware'));
63+
64+
expect(startHeader?.get('x-start-authenticate-middleware')).toBe('start-authentication');
65+
expect(nextHeader?.get('x-authenticate-middleware')).toBe('authentication');
66+
expect(endHeader?.get('x-end-session-middleware')).toBe('end-session');
67+
68+
// Check that Accept-Language header was modified from default en-US locale and set to correct value in each middleware
69+
expect(startHeader?.get('Accept-Language')).not.toContain('en-US');
70+
expect(nextHeader?.get('Accept-Language')).not.toContain('en-US');
71+
expect(endHeader?.get('Accept-Language')).not.toContain('en-US');
72+
73+
expect(startHeader?.get('Accept-Language')).toBe('xx-XX');
74+
expect(nextHeader?.get('Accept-Language')).toBe('yy-YY');
75+
expect(endHeader?.get('Accept-Language')).toBe('zz-ZZ');
6076

6177
expect(messageArray.includes('Journey completed successfully')).toBe(true);
6278
expect(messageArray.includes('Logout successful')).toBe(true);

0 commit comments

Comments
 (0)