Skip to content

Local end-to-end tests

The local E2E suite runs an isolated VICIdial database, PHP/Apache, Asterisk, browser client, mocks, and pinned LiveKit server. It uses fake 602-555-* leads and never buys numbers or consumes PSTN minutes.

Terminal window
npm install
npx playwright install chromium
npm test

Useful subsets: npm run test:e2e:api, npm run test:e2e:ui, and npm run test:e2e:telephony. Use KEEP_E2E=1 npm run test:e2e to preserve the stack, then npm run e2e:down.

The harness rejects non-loopback base URLs. Ports bind to 127.0.0.1 by default; LAN exposure is only for a dedicated simulator/device proof on a trusted network.

Coverage includes authentication/CSRF, API writes, current and compatibility dialers, admin/Field portals, SIP registration, AMI originate/status/hang-up, two-way RTP, mute, hold, DTMF, teardown, and a local LiveKit room. External GHL, Telnyx, and production systems remain outside default tests.

Implementation anchors: tests/e2e/README.md, docker-compose.yml, specs/, support/.