Timed jobs move from in-process timers to a job registry run by pg-boss: once per schedule across processes, retries, run history, cron schedules in the church timezone, and an admin Background jobs page with Run now. Playwright end-to-end tests run against their own seeded database. A Gitea Actions workflow runs backend tests, frontend checks and the e2e tests, and deploys v* tags with scripts/deploy.sh once secrets are set. Also fixes the at-the-door check-in count for multi-day tickets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
17 lines
834 B
JavaScript
17 lines
834 B
JavaScript
// The e2e database: E2E_DATABASE_URL, or backend/.env's DATABASE_URL with "_e2e" added
|
|
// to the database name — always separate from the database you develop against.
|
|
const path = require('path');
|
|
|
|
function e2eDatabaseUrl() {
|
|
if (process.env.E2E_DATABASE_URL) return process.env.E2E_DATABASE_URL;
|
|
const backend = path.join(__dirname, '..', '..', 'backend');
|
|
require(require.resolve('dotenv', { paths: [backend] })).config({ path: path.join(backend, '.env'), quiet: true });
|
|
if (!process.env.DATABASE_URL) throw new Error('Set E2E_DATABASE_URL (or DATABASE_URL in backend/.env) for the e2e tests.');
|
|
const u = new URL(process.env.DATABASE_URL);
|
|
const name = u.pathname.replace(/^\//, '');
|
|
u.pathname = `/${name.endsWith('_e2e') ? name : `${name}_e2e`}`;
|
|
return u.toString();
|
|
}
|
|
|
|
module.exports = { e2eDatabaseUrl };
|