Commit Graph
1 Commits
Author SHA1 Message Date
arcodangeandClaude Opus 5 aa43862076 feat(test): host guard for UI admin scripts + sandbox legal-mentions setup
test/.env ships DOLIBARR_ADDRESS pointing at PRODUCTION and test/main.ts
defaults to it, so any Playwright admin script run with the ambient
environment drives the real ERP. The REST path has been structurally safe
since ADR-0003 (dol-write.sh refuses non-sandbox hosts); the UI path had no
equivalent. scripts/guard.ts closes that gap — assertSandbox() resolves the
target and refuses anything that is not erp-sandbox.*, with the override
spelled out in the error. Verified: an unqualified run now dies instead of
reaching prod.

Two settings the write agent cannot reach (non-admin by design, 403 on
/setup/conf), rehearsed on the sandbox:

- sandboxLegalSetup.ts — capital social + multi-currency module. Finding:
  the capital was NOT missing, it was stored as "1000€"; the symbol made the
  value unusable by the PDF template, which is why "Capital de 1 000 €" was
  absent from every invoice since January (C. com. R.123-238). Normalised to
  "1000" → the mention now renders.
- sandboxCurrencySetup.ts — registers the USD reference rate. Enabling the
  module is not enough: a currency absent from the rate table makes Dolibarr
  silently fall back to EUR (observed on a probe invoice). With the rate
  registered, an invoice carries USD 3,000.00 with its EUR counter-value,
  i.e. the contractual obligation itself rather than a drifting equivalent.

Both scripts are report-only when they cannot recognise a form, and screenshot
what they did.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01VRShc4QhLLU73FLHx9vskh
2026-07-25 23:14:15 +02:00