* Shared configuration for the E2E suite.
*
* Everything is overridable via env so the same specs can run against:
* - a self-host the suite boots itself via the LearnHouse CLI (default), or
* - an already-running instance (set E2E_BASE_URL to skip the boot).
*/
const PORT = process.env.E2E_PORT || '8080'
const DOMAIN = process.env.E2E_DOMAIN || 'localhost'
export const BASE_URL =
process.env.E2E_BASE_URL || `http://${DOMAIN}:${PORT}`
* Defaults to same-origin; point at a separate API origin via E2E_API_URL for
* split web/API dev setups. */
export const API_URL = process.env.E2E_API_URL || `${BASE_URL}/api/v1`
export const ORG_SLUG = process.env.E2E_ORG_SLUG || 'default'
export const ADMIN_EMAIL = process.env.E2E_ADMIN_EMAIL || 'admin@school.dev'
export const ADMIN_PASSWORD = process.env.E2E_ADMIN_PASSWORD || 'E2eTestAdmin!234'
export const INSTALL_NAME = process.env.E2E_INSTALL_NAME || 'e2e'
export const CLI = process.env.E2E_CLI || 'npx --yes learnhouse@latest'
export const SKIP_BOOT =
process.env.E2E_SKIP_BOOT === '1' || Boolean(process.env.E2E_BASE_URL)
export { PORT, DOMAIN }
export function uniqueSuffix(): string {
return `${Date.now().toString(36)}-${Math.floor(Math.random() * 1e6).toString(36)}`
}
export function makeStudent(label: string) {
const suffix = uniqueSuffix()
return {
email: `student-${label}-${suffix}@e2e-tests.com`,
username: `student_${label}_${suffix}`.replace(/-/g, '_'),
password: 'E2eStudent!234',
firstName: 'Stu',
lastName: label,
}
}