Helper functions and utilities for test execution.
Utilities provide common functionality that doesn't fit into fixtures or page objects:
- JWT token parsing and management
- Test data generation
- Date/time utilities
- String formatting helpers
- API request utilities
-
token-manager.ts- JWT token utilitiesgetToken(role)- Get cached or new token for rolerefreshToken(token)- Refresh expired tokenparseToken(token)- Decode JWT payloadisTokenExpired(token)- Check token expirationgetTokenScopes(token)- Extract scopes from token
-
test-data-generator.ts- Random data generationgenerateRandomEmail()- Random email addressgenerateRandomName()- Random first/last namegenerateRandomEmployeeNumber()- Unique employee numbergenerateRandomSalary(min, max)- Random salary in range
-
api-helpers.ts- API request utilitiesmakeAuthenticatedRequest(request, token, options)- API call with authwaitForApiResponse(page, url)- Wait for specific API callmockApiResponse(page, url, data)- Mock API endpoint
-
date-helpers.ts- Date/time utilitiesformatDate(date, format)- Format date for formsaddDays(date, days)- Date arithmeticisWeekday(date)- Business day check
import { test, expect } from '@playwright/test';
import { parseToken, isTokenExpired } from '../utils/token-manager';
import { generateRandomEmail } from '../utils/test-data-generator';
test('Token validation', async ({ request }) => {
const response = await request.post('/connect/token', {
data: { /* token request */ }
});
const { access_token } = await response.json();
const payload = parseToken(access_token);
expect(isTokenExpired(access_token)).toBe(false);
expect(payload.scope).toContain('app.api.talentmanagement.read');
});
test('Create employee with random data', async ({ page }) => {
const email = generateRandomEmail();
// Use in test...
});⏳ Not yet implemented - See IMPLEMENTATION_PLAN.md Phase 2, Week 4