Docs/Testing & Quality/Test Strategy

Test Strategy

How the platform is tested, layer by layer, and where each layer runs. The strategy is defined by the configuration and workflows in the repository rather than by a single test-plan document (none exists under docs/testing). Detail pages: End-to-End Suites and Quality Gates & CI Checks.

What runs automatically

ci.yml (summary check CI OK) and static-gates.yml run on every pull request; e2e.yml runs nightly and on demand. Each layer also has a local make target (make gates, make test, make lint, make compose-validate, make helm-lint).

Layers

flowchart TB L1["Static gates: Flyway lint, price and file-size ratchets, skip expiry, bean/entity-name guards, gitleaks"] L2["Unit tests: Maven surefire (core), vitest (web, web-admin), pytest (sidecar), script harness (code-intel)"] L3["Boot check: full jar against a throwaway Postgres before any prod image"] L4["End-to-end: Playwright against a real stack, no mocking"] L5["Eval: golden-dataset runner in core/quality, run by hand"] L6["Load: k6, staging only"] L1 --> L2 --> L3 --> L4 L4 --> L5 L4 --> L6
LayerTooling as configuredWhere it lives
Static gatesShell scripts and gitleaksscripts/ci/, .github/workflows/static-gates.yml, make gates
Core unit / integrationMaven reactor, surefire with a documented JVM-flag mitigation for random fork crashes on JDK 21+; maintainers build locally with JDK 24Modules under core/ (563 *Test.java files at authoring time; a file count, not a test count)
Web unitVitest 4 + React Testing Library, jsdom; includes only app/**/*.test.{ts,tsx}web/vitest.config.mts, web/vitest.setup.ts; npm test runs vitest run
Python servicesRuff lint; pytest for sidecar; code-intel uses a script harness, not pytestservices/sidecar/tests/, services/code-intel/tests/; make test-python, ci.yml “python” job
Lint + buildnpm run lint and npm run build for web/ and web-admin/ci.yml jobs web, web-admin; make lint
End-to-endPlaywright against a real running stacktests/e2e/ (run by e2e.yml) and web/e2e/; see E2E Suites
Agent evalGolden-dataset runner com.agenticai.core.quality.eval.EvalRunner; no workflow runs itcore/quality/ (see eval-harness.md)
Infra validationhelm lint/template and kubeconform; docker compose config on every compose fileci.yml jobs helm and compose; make helm-lint, make compose-validate
Load / latencyk6 profile with a documented acceptance rule; staging onlytests/load/

Principles visible in the configuration

Environment prerequisites for the heavy tiers

Not documented in the repository

Coverage percentages, total test counts per module, pass rates, flaky-test statistics and a coverage threshold are not recorded. JaCoCo and vitest coverage are advisory with no threshold. The eval golden-dataset pass criteria are not summarised on this page; see core/quality/eval-harness.md.

Evidence & references

Related: E2E Suites · Quality Gates · CI/CD Pipelines · Build, Test & Verify