Commit 70df07f
authored
test(test): add tools/test-onboarding.sh local fresh-install harness (#2308)
Local harness that simulates the brand-new-user onboarding flow without
touching the user's daily wheels install. Uses LUCLI_HOME isolation so
an isolated copy of the worktree's cli/lucli/ is exercised, with the
worktree's vendor/wheels/ as WHEELS_FRAMEWORK_PATH.
Phases (mirrors fresh-VM journal format for direct comparison):
- Phase 1: Setup isolated LUCLI_HOME (worktree mount, framework path,
Lucee Express symlink to avoid the 74MB re-download)
- Phase 2: wheels new (assertions for F3 dup create lines, F4 file
tree shape, F1 no bundleName in generated config/app.cfm)
- Phase 3: server boot via 'lucli server run' + sqlite-jdbc shim
- Phase 4: migration cliff (F2/F5 false-success — verifies the actual
sqlite db has the migrated tables, not just exit 0)
- Phase 5: seed (cfscript wrapper + idempotency)
- Phase 6: CRUD walkthrough through chapters 2-3
- Phase 7: wheels packages list (F7 — currently SKIP pending a
separate fix; reports the bug signature when it reproduces)
Closes the iteration loop: instead of fix → push → fresh-VM test
(30+ min/round), we can now fix → run harness (~90s) and only burn a
fresh VM as the final confidence check.
Modes:
- bash tools/test-onboarding.sh # symlink mount (default)
- MODE=copy bash tools/test-onboarding.sh # copy (closer to brew install)
- BASELINE=1 bash tools/test-onboarding.sh # use brew-installed wheels
- KEEP_TEMP=1 bash tools/test-onboarding.sh # preserve temp dirs
- FROM_PHASE=4 bash tools/test-onboarding.sh # skip earlier phases
JAVA_HOME is auto-resolved (via /usr/libexec/java_home or brew-prefix
fallback for keg-only openjdk@21). LUCLI_HOME ends in '.lucli' so
LuCLI's getComponentPath() picks the absolute-file-path mode for
Module.cfc loading.
Without this harness we'd have shipped PR #2304 + #2306 + the formula
updates, watched the next VM run still fail at migrate (the
migrateToLatest bug surfaced in PR #2307 was masked by the silent
exit-0), and needed a third VM iteration to find it.1 parent d670bbc commit 70df07f
1 file changed
Lines changed: 702 additions & 0 deletions
0 commit comments