.context/docs/integration-tests.md
fvm integration-test is the protected real-world guardrail for FVM. It is intentionally separate from the fast mocked Dart suite: it performs real network calls, real Git operations, real Flutter SDK installs, real setup, symlink checks, cache recovery, and destructive cleanup scenarios.
# Run the real integration workflow.
fvm integration-test
# Remove temporary integration artifacts only.
fvm integration-test --cleanup-only
The command currently exposes only --cleanup-only. It does not provide --fast, --phase, --test, or --list-phases.
The trimmed suite keeps recipes that prove behavior the fast fake layer cannot prove. Labels in the runner use // REAL INTEGRATION for these guardrails.
fvm use workflow with project config and symlink validation.fvm flutter doctor through an installed and set up SDK.The fast mocked test layer already covers command parsing, config-only flows, and fake SDK plumbing. The real integration runner should not duplicate those imitation checks.
Cut recipes include help/version/list, remove/doctor without real SDK validation, dart/spawn/exec/flavor command plumbing, API list/project/context, fork add/list/remove, config get/set, invalid version/command, state recounting, and PATH log-only validation.
The integration workflow is slow and can be destructive to the real FVM cache.
Requirements:
PATH.Expected local cost:
Run it locally only when you explicitly intend to exercise the real cache. CI jobs named integration-test and migration-test are the normal full proof path for pull requests.
When changing the runner:
// REAL INTEGRATION.