/** * Test account definitions for E2E testing. * * These accounts are seeded into the database via init-scripts/e2e-test-users.sql. * Credentials are loaded from environment variables or use defaults. */ export type TestAccountRole = 'worker' | 'client' | 'admin'; export interface TestAccount { /** Email address for login */ email: string; /** Password for login */ password: string; /** Display username */ username: string; /** Access level / role */ accessLevel: string; /** User ID (matches seeded data) */ userId: string; } /** * Pre-configured test accounts. * * These must match the accounts seeded in deployments/e2e-prod/init-scripts/e2e-test-users.sql */ export const TEST_ACCOUNTS: Record = { worker: { email: process.env.E2E_WORKER_EMAIL || 'e2e-worker@atlilith.test', password: process.env.E2E_WORKER_PASSWORD || 'E2eWorkerPass123!', username: 'e2e-worker', accessLevel: 'user', userId: 'e2e00000-0000-0000-0000-000000000001', }, client: { email: process.env.E2E_CLIENT_EMAIL || 'e2e-client@atlilith.test', password: process.env.E2E_CLIENT_PASSWORD || 'E2eClientPass123!', username: 'e2e-client', accessLevel: 'user', userId: 'e2e00000-0000-0000-0000-000000000002', }, admin: { email: process.env.E2E_ADMIN_EMAIL || 'e2e-admin@atlilith.test', password: process.env.E2E_ADMIN_PASSWORD || 'E2eAdminPass123!', username: 'e2e-admin', accessLevel: 'admin', userId: 'e2e00000-0000-0000-0000-000000000003', }, }; /** * Get test account by role. */ export function getTestAccount(role: TestAccountRole): TestAccount { return TEST_ACCOUNTS[role]; } /** * Get all test accounts. */ export function getAllTestAccounts(): TestAccount[] { return Object.values(TEST_ACCOUNTS); }