← Development workflow

Test lane quick reference

The canonical testing documentation is Testing infrastructure. This filename is kept for older links.

What changed Run from app/
model, behavior, service, KMP primitive vendor/bin/phpunit --testsuite core-unit
controller, command, middleware, view vendor/bin/phpunit --testsuite core-feature
plugin code vendor/bin/phpunit --testsuite plugins
Stimulus/JavaScript npm run test:js
Vite imports/bundling npm run dev
curated browser journey npm run test:ui:journey
platform tenant provisioning npm run test:ui:platform-provisioning
full browser UAT npm run test:ui
standard non-browser verification bash bin/verify.sh

verify.sh runs all three PHP suites, the skip budget, seed contracts, Jest, Vite, the Azure runtime contract, changed-file PHPCS, and PHPStan. It does not run Playwright. Run only one Playwright lane at a time because it shares and resets the local Docker environment.

Ordinary PHPUnit bootstrap uses one seeded tenant-shaped test database with runtime tenancy disabled. Tenant resolution/cleanup and central platform state are tested explicitly in middleware/service/command tests; full host-bound behavior is covered in the multi-host Playwright scenarios.

Do not rely on old absolute /workspaces/KMP paths, historical test counts, or seed record totals. Use repository-relative paths and stable constants from the project test base classes.