Skip to content

Testing and verification

Run the narrowest relevant test while developing, then the complete component gate before handing off the change. PostgreSQL is mandatory whenever a claim depends on schema, locking, persistence or recovery.

Terminal window
cd engine
./mvnw test
./mvnw clean package
Change Required evidence
Core logic or REST behavior Relevant tests and full engine test suite
BPMN behavior Parser/validation test, executable BPMN fixture, success and rejection semantics
APL behavior AplParser rejection matrix, executable APL fixture, AplRuntimeTest; keep the kitchen-sink APL twin 1:1 with the BPMN original and run Studio verify:kitchen-sink
Agent worker or external-task behavior Durable lease/recovery evidence (AgentWorkerResilienceTest, WorkerHealthServiceTest, FirstPartyWorkerCapabilityTest) plus positive/negative global-fetch authorization
Insight behavior Fact-commit/rollback, analyzer window recovery, proposal lifecycle and policy tests (PostgreSQL), stale-target SUPERSEDED checks
Migration or repository lock PostgreSQL fresh/upgrade, rollback, restart and concurrency tests
Public API OpenAPI compatibility test, typed errors and documentation
Authentication or authorization Positive and negative JWT/proxy/role/resource/lane tests
Studio Lint, tests, production build and APL round-trip checks
Documentation Dependency audit, Astro check, build and internal-link validation
Release metadata Backend/workers/frontends/SDK/docs, JAR hash, image and Compose validation

For atomicity and cluster changes, test crashes or exceptions before and after commit. Verify that failed commands leave no partial state/history/outbox and that committed work is recoverable without a duplicate workflow transition.

Record the exact commands, test counts, failures/skips and non-blocking warnings. Do not call a release ready when Docker/PostgreSQL evidence was skipped or a critical correctness defect remains.