---
title: "Testing and upgrading · Builder's guide · Chappell AI"
description: "Section 15 of the GAAPcore builder's guide."
url: https://chappellai.us/guide/15-testing-and-upgrading/
---

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

1.  Copy the new `api/openapi.yaml` into your pinned copy and update the pin (commit, schema version).
2.  Regenerate the client and type-check. The compiler lists every screen the change touches.
3.  Run all tests against a database built at the new version.
4.  Upgrade production only after a tested backup (see the warning in section 5).
