64 lines
1.8 KiB
TypeScript
64 lines
1.8 KiB
TypeScript
/**
|
|
* 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<TestAccountRole, TestAccount> = {
|
|
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);
|
|
}
|