Testing Guide¶
Test Scope in bf-dev¶
The harness itself includes smoke-level tests in tests/ focused on scripts and orchestration behavior.
Running Harness Tests¶
Run focused harness tests directly from tests/ when changing BFDev scripts.
For example:
Service-level Tests¶
Use the root Mise quality tasks for checked-out service repos:
The same selector model is available for linting and type checks:
Selectors match repositories under bf/. Exact aliases such as core and
web resolve to their matching service repos, broad selectors such as manage
resolve to all checked-out matching repos, and no selector runs every detected
service command.
When a service has its own mise.toml, the root task delegates to the
service-local task through Mise monorepo task discovery. For example:
Services without local Mise tasks can still be handled by fallback detection for
common npm, uv, pipenv, and make test/lint commands. Container-only
checks should still be run inside the relevant downstream service container.
Manage Web worker count¶
Manage Web limits Vitest to two workers by default to avoid exhausting memory on developer machines. A capable workstation can increase the limit for one run:
For a persistent machine-specific override, create
bf/manage-web/mise.local.toml with:
This local file is ignored by Git. The Manage Web CI test jobs set
VITEST_MAX_WORKERS=8 for their xlarge runners.
Validation Layers¶
Practical Checks¶
- Start target mode and ensure healthchecks pass.
- Validate critical UI/API paths for the active domain.
- Re-run after
./pullwhen dependencies move.