Testing
Test requests, webhook handling, and expiry without exposing secrets.
Local application setup
The application's own README documents Bun, PostgreSQL, Redis, provider configuration, and a local app origin on port 3001.
bun install
cp .env.example .env
bun run db:migrate
bun run devUse the disposable-database workflow documented in the application repository for integration tests. Never point a local test run at a Railway or production database.
Test your server adapter
Mock the Outpay HTTP response and confirm your server:
- Uses a server-only API key.
- Sends a stable idempotency key.
- Redirects to the exact
paymentUrlreturned by Outpay. - Never fulfils an order from the browser redirect alone.
- Accepts a duplicate
checkout.paiddelivery without a second fulfilment. - Rejects an invalid signature before treating a webhook payload as trusted data.
Provider webhooks
The application has an internal Alchemy webhook route, but the repository does not document a turnkey public-tunnel workflow for exercising it locally. Treat provider-webhook replay as an operator/integration-test concern, and record the raw-body and signature fixtures you use.
No test network exists
Do not document a testnet or a fake USDC token as if it were supported. The verified catalog is Base mainnet plus the native USDC contract — see supported networks.
Related documentation
- Test an integration locally — a fuller test-layer checklist.
- Production checklist — what to confirm before going live.
- Idempotency — safe-retry behaviour to include in your test suite.