Builder's guide · Section 15
Testing and upgrading
Test against the real thing
- Server tests for your relay, permissions and approvals, including the side doors (section 10). Test that each refused action is actually refused, not only that allowed actions work.
- Component and unit tests for money formatting, the command registry and forms.
- A scripted browser run per chunk (for example with Playwright) against a freshly reset demo ledger, following the same “what to try” steps the owner will.
- A local GAAPcore built from your pinned commit. Never test against production books.
- A fast reset: snapshot the seeded database and restore it in seconds, so every test run starts from known books.
Upgrading GAAPcore
- Copy the new
api/openapi.yamlinto your pinned copy and update the pin (commit, schema version). - Regenerate the client and type-check. The compiler lists every screen the change touches.
- Run all tests against a database built at the new version.
- Upgrade production only after a tested backup (see the warning in section 5).