Submodule Scenarios
submodule-with-history
Parent repo with 4 commits + vendor/lib submodule (clean pin, 4 commits, branch = main). For testing recursive submodule navigation and submodule status display.
Contracts:
- Parent has 4 commits on
main vendor/libsubmodule exists withbranch = main- Submodule has 4 commits
- Submodule pin is clean (not modified)
Building out-of-date submodule states
Use the insideSubmodule scope to add commits that don’t update the parent’s pin:
import { fromScenario, insideSubmodule, addCommit, chain } from '@gfargo/git-scenarios'
const repo = await fromScenario('submodule-with-history', insideSubmodule('vendor/lib', chain( addCommit({ message: 'feat: post-pin work', files: { 'new.ts': 'new\n' } }), )),)// git submodule status now shows `+` (modified — pin lags HEAD)