Our Approach
Two-Stage Model
Tests are split into two ordered stages.
Stage 1 — Setup. Establishes the preconditions the functional tests depend on: identity, permissions, and data fixtures. These run once per environment. If any setup step fails, the functional stage does not run.
Stage 2 — Functional. Asserts on platform behaviour as experienced by a real user — API responses, query results, permission enforcement. These are safe to run repeatedly.
The split keeps failure diagnosis clean: when a functional test fails, you can tell immediately whether it is a genuine regression or a broken precondition.
Test Data
Tests use a stable, real-world dataset as the fixture so that assertions on results are deterministic across runs. The dataset is seeded during Stage 1 and remains consistent for all functional tests.
[Describe the dataset in use and where it is stored, or link to the platform-tests README for specifics.]
Identity and Authentication
Every test authenticates as a real user identity scoped to the test environment. Tests that assert on permission denials use a separate identity with restricted roles.
[Add detail on how test identities are provisioned and where credentials are managed.]
Environments
[Describe which environments platform tests run against, who owns each, and what the data isolation guarantees are.]
CI Integration
[Describe how platform tests connect to the CI pipeline — trigger, target environment, how failures are surfaced, and who acts on them.]
Go Deeper
- Test Checklist
- Contributing Tests
- platform-tests README — setup instructions, env vars, make targets