// Shared constants for the E2E harness — required by both the DB-prep script // (plain node) and the Playwright config/specs. See docs/QA_PLAN.md §4.4. const path = require('path'); // Known creds for the seeded scratch user (regular `user` role, no forced // password change). Override via env if needed; defaults are fine locally. const E2E_USER = process.env.E2E_USER || 'e2e_user'; const E2E_PASS = process.env.E2E_PASS || 'e2e_pass_1234'; // Saved logged-in browser state, produced by auth.setup.js and reused by // authenticated specs. Lives outside git (see .gitignore). const STORAGE_STATE = path.join(__dirname, '.auth', 'user.json'); // Throwaway SQLite DB for E2E. NEVER the real db/bills.db. Override with // E2E_DB_PATH to relocate (e.g. an OS tmpdir on CI). function scratchDbPath() { return process.env.E2E_DB_PATH || path.join(__dirname, '..', 'db', 'e2e.db'); } // Dedicated ports so E2E never collides with (or reuses) your real dev server // on 5173/3000 — a second safety layer on top of the scratch DB. const API_PORT = process.env.E2E_API_PORT || '3099'; const UI_PORT = process.env.E2E_UI_PORT || '5199'; module.exports = { E2E_USER, E2E_PASS, STORAGE_STATE, scratchDbPath, API_PORT, UI_PORT };