@camaradesuk/git-worktree-tools 1.10.0 ā 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/lib/config.d.ts +2 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +11 -0
- package/dist/lib/config.js.map +1 -1
- package/package.json +12 -3
- package/schemas/worktreerc.schema.json +1 -1
- package/dist/api/list.test.d.ts +0 -5
- package/dist/api/list.test.d.ts.map +0 -1
- package/dist/api/list.test.js +0 -390
- package/dist/api/list.test.js.map +0 -1
- package/dist/cli/cleanpr.test.d.ts +0 -2
- package/dist/cli/cleanpr.test.d.ts.map +0 -1
- package/dist/cli/cleanpr.test.js +0 -954
- package/dist/cli/cleanpr.test.js.map +0 -1
- package/dist/cli/lswt.test.d.ts +0 -2
- package/dist/cli/lswt.test.d.ts.map +0 -1
- package/dist/cli/lswt.test.js +0 -376
- package/dist/cli/lswt.test.js.map +0 -1
- package/dist/cli/newpr.test.d.ts +0 -2
- package/dist/cli/newpr.test.d.ts.map +0 -1
- package/dist/cli/newpr.test.js +0 -1182
- package/dist/cli/newpr.test.js.map +0 -1
- package/dist/cli/prs.test.d.ts +0 -8
- package/dist/cli/prs.test.d.ts.map +0 -1
- package/dist/cli/prs.test.js +0 -463
- package/dist/cli/prs.test.js.map +0 -1
- package/dist/cli/wt/clean.test.d.ts +0 -8
- package/dist/cli/wt/clean.test.d.ts.map +0 -1
- package/dist/cli/wt/clean.test.js +0 -624
- package/dist/cli/wt/clean.test.js.map +0 -1
- package/dist/cli/wt/completion.test.d.ts +0 -5
- package/dist/cli/wt/completion.test.d.ts.map +0 -1
- package/dist/cli/wt/completion.test.js +0 -275
- package/dist/cli/wt/completion.test.js.map +0 -1
- package/dist/cli/wt/config.test.d.ts +0 -7
- package/dist/cli/wt/config.test.d.ts.map +0 -1
- package/dist/cli/wt/config.test.js +0 -440
- package/dist/cli/wt/config.test.js.map +0 -1
- package/dist/cli/wt/entry.test.d.ts +0 -8
- package/dist/cli/wt/entry.test.d.ts.map +0 -1
- package/dist/cli/wt/entry.test.js +0 -201
- package/dist/cli/wt/entry.test.js.map +0 -1
- package/dist/cli/wt/init.test.d.ts +0 -5
- package/dist/cli/wt/init.test.d.ts.map +0 -1
- package/dist/cli/wt/init.test.js +0 -165
- package/dist/cli/wt/init.test.js.map +0 -1
- package/dist/cli/wt/init.unit.test.d.ts +0 -5
- package/dist/cli/wt/init.unit.test.d.ts.map +0 -1
- package/dist/cli/wt/init.unit.test.js +0 -432
- package/dist/cli/wt/init.unit.test.js.map +0 -1
- package/dist/cli/wt/interactive-menu.test.d.ts +0 -12
- package/dist/cli/wt/interactive-menu.test.d.ts.map +0 -1
- package/dist/cli/wt/interactive-menu.test.js +0 -796
- package/dist/cli/wt/interactive-menu.test.js.map +0 -1
- package/dist/cli/wt/list.test.d.ts +0 -10
- package/dist/cli/wt/list.test.d.ts.map +0 -1
- package/dist/cli/wt/list.test.js +0 -157
- package/dist/cli/wt/list.test.js.map +0 -1
- package/dist/cli/wt/prs.test.d.ts +0 -5
- package/dist/cli/wt/prs.test.d.ts.map +0 -1
- package/dist/cli/wt/prs.test.js +0 -410
- package/dist/cli/wt/prs.test.js.map +0 -1
- package/dist/cli/wt/run-command.test.d.ts +0 -5
- package/dist/cli/wt/run-command.test.d.ts.map +0 -1
- package/dist/cli/wt/run-command.test.js +0 -88
- package/dist/cli/wt/run-command.test.js.map +0 -1
- package/dist/cli/wt/state.test.d.ts +0 -9
- package/dist/cli/wt/state.test.d.ts.map +0 -1
- package/dist/cli/wt/state.test.js +0 -127
- package/dist/cli/wt/state.test.js.map +0 -1
- package/dist/cli/wt/wt.test.d.ts +0 -8
- package/dist/cli/wt/wt.test.d.ts.map +0 -1
- package/dist/cli/wt/wt.test.js +0 -739
- package/dist/cli/wt/wt.test.js.map +0 -1
- package/dist/cli/wt.unit.test.d.ts +0 -7
- package/dist/cli/wt.unit.test.d.ts.map +0 -1
- package/dist/cli/wt.unit.test.js +0 -160
- package/dist/cli/wt.unit.test.js.map +0 -1
- package/dist/cli/wtconfig.test.d.ts +0 -5
- package/dist/cli/wtconfig.test.d.ts.map +0 -1
- package/dist/cli/wtconfig.test.js +0 -1289
- package/dist/cli/wtconfig.test.js.map +0 -1
- package/dist/cli/wtlink.test.d.ts +0 -2
- package/dist/cli/wtlink.test.d.ts.map +0 -1
- package/dist/cli/wtlink.test.js +0 -249
- package/dist/cli/wtlink.test.js.map +0 -1
- package/dist/cli/wtstate.test.d.ts +0 -5
- package/dist/cli/wtstate.test.d.ts.map +0 -1
- package/dist/cli/wtstate.test.js +0 -193
- package/dist/cli/wtstate.test.js.map +0 -1
- package/dist/e2e/cleanpr/cleanpr.e2e.test.d.ts +0 -2
- package/dist/e2e/cleanpr/cleanpr.e2e.test.d.ts.map +0 -1
- package/dist/e2e/cleanpr/cleanpr.e2e.test.js +0 -326
- package/dist/e2e/cleanpr/cleanpr.e2e.test.js.map +0 -1
- package/dist/e2e/cli.e2e.test.d.ts +0 -2
- package/dist/e2e/cli.e2e.test.d.ts.map +0 -1
- package/dist/e2e/cli.e2e.test.js +0 -417
- package/dist/e2e/cli.e2e.test.js.map +0 -1
- package/dist/e2e/lswt/lswt.e2e.test.d.ts +0 -2
- package/dist/e2e/lswt/lswt.e2e.test.d.ts.map +0 -1
- package/dist/e2e/lswt/lswt.e2e.test.js +0 -361
- package/dist/e2e/lswt/lswt.e2e.test.js.map +0 -1
- package/dist/e2e/newpr/newpr.e2e.test.d.ts +0 -2
- package/dist/e2e/newpr/newpr.e2e.test.d.ts.map +0 -1
- package/dist/e2e/newpr/newpr.e2e.test.js +0 -286
- package/dist/e2e/newpr/newpr.e2e.test.js.map +0 -1
- package/dist/e2e/newpr/scenarios.e2e.test.d.ts +0 -2
- package/dist/e2e/newpr/scenarios.e2e.test.d.ts.map +0 -1
- package/dist/e2e/newpr/scenarios.e2e.test.js +0 -426
- package/dist/e2e/newpr/scenarios.e2e.test.js.map +0 -1
- package/dist/e2e/newpr-full-flow.e2e.test.d.ts +0 -2
- package/dist/e2e/newpr-full-flow.e2e.test.d.ts.map +0 -1
- package/dist/e2e/newpr-full-flow.e2e.test.js +0 -280
- package/dist/e2e/newpr-full-flow.e2e.test.js.map +0 -1
- package/dist/e2e/prs/prs.e2e.test.d.ts +0 -7
- package/dist/e2e/prs/prs.e2e.test.d.ts.map +0 -1
- package/dist/e2e/prs/prs.e2e.test.js +0 -606
- package/dist/e2e/prs/prs.e2e.test.js.map +0 -1
- package/dist/e2e/workflows/pr-lifecycle.e2e.test.d.ts +0 -2
- package/dist/e2e/workflows/pr-lifecycle.e2e.test.d.ts.map +0 -1
- package/dist/e2e/workflows/pr-lifecycle.e2e.test.js +0 -298
- package/dist/e2e/workflows/pr-lifecycle.e2e.test.js.map +0 -1
- package/dist/e2e/wt/interactive-menu.e2e.test.d.ts +0 -8
- package/dist/e2e/wt/interactive-menu.e2e.test.d.ts.map +0 -1
- package/dist/e2e/wt/interactive-menu.e2e.test.js +0 -583
- package/dist/e2e/wt/interactive-menu.e2e.test.js.map +0 -1
- package/dist/e2e/wt/wt.e2e.test.d.ts +0 -9
- package/dist/e2e/wt/wt.e2e.test.d.ts.map +0 -1
- package/dist/e2e/wt/wt.e2e.test.js +0 -597
- package/dist/e2e/wt/wt.e2e.test.js.map +0 -1
- package/dist/e2e/wtlink/wtlink.e2e.test.d.ts +0 -2
- package/dist/e2e/wtlink/wtlink.e2e.test.d.ts.map +0 -1
- package/dist/e2e/wtlink/wtlink.e2e.test.js +0 -416
- package/dist/e2e/wtlink/wtlink.e2e.test.js.map +0 -1
- package/dist/integration/git.integration.test.d.ts +0 -2
- package/dist/integration/git.integration.test.d.ts.map +0 -1
- package/dist/integration/git.integration.test.js +0 -336
- package/dist/integration/git.integration.test.js.map +0 -1
- package/dist/integration/lswt-remote-pr.integration.test.d.ts +0 -2
- package/dist/integration/lswt-remote-pr.integration.test.d.ts.map +0 -1
- package/dist/integration/lswt-remote-pr.integration.test.js +0 -222
- package/dist/integration/lswt-remote-pr.integration.test.js.map +0 -1
- package/dist/integration/newpr-branchfrom-head.integration.test.d.ts +0 -2
- package/dist/integration/newpr-branchfrom-head.integration.test.d.ts.map +0 -1
- package/dist/integration/newpr-branchfrom-head.integration.test.js +0 -498
- package/dist/integration/newpr-branchfrom-head.integration.test.js.map +0 -1
- package/dist/integration/newpr.integration.test.d.ts +0 -2
- package/dist/integration/newpr.integration.test.d.ts.map +0 -1
- package/dist/integration/newpr.integration.test.js +0 -460
- package/dist/integration/newpr.integration.test.js.map +0 -1
- package/dist/integration/prs.integration.test.d.ts +0 -8
- package/dist/integration/prs.integration.test.d.ts.map +0 -1
- package/dist/integration/prs.integration.test.js +0 -478
- package/dist/integration/prs.integration.test.js.map +0 -1
- package/dist/lib/ai/base-provider.test.d.ts +0 -7
- package/dist/lib/ai/base-provider.test.d.ts.map +0 -1
- package/dist/lib/ai/base-provider.test.js +0 -319
- package/dist/lib/ai/base-provider.test.js.map +0 -1
- package/dist/lib/ai/cli-provider.test.d.ts +0 -5
- package/dist/lib/ai/cli-provider.test.d.ts.map +0 -1
- package/dist/lib/ai/cli-provider.test.js +0 -460
- package/dist/lib/ai/cli-provider.test.js.map +0 -1
- package/dist/lib/ai/fallback-provider.test.d.ts +0 -7
- package/dist/lib/ai/fallback-provider.test.d.ts.map +0 -1
- package/dist/lib/ai/fallback-provider.test.js +0 -165
- package/dist/lib/ai/fallback-provider.test.js.map +0 -1
- package/dist/lib/ai/generation-service.test.d.ts +0 -7
- package/dist/lib/ai/generation-service.test.d.ts.map +0 -1
- package/dist/lib/ai/generation-service.test.js +0 -213
- package/dist/lib/ai/generation-service.test.js.map +0 -1
- package/dist/lib/ai/provider-manager.test.d.ts +0 -5
- package/dist/lib/ai/provider-manager.test.d.ts.map +0 -1
- package/dist/lib/ai/provider-manager.test.js +0 -312
- package/dist/lib/ai/provider-manager.test.js.map +0 -1
- package/dist/lib/ai/repo-docs.test.d.ts +0 -5
- package/dist/lib/ai/repo-docs.test.d.ts.map +0 -1
- package/dist/lib/ai/repo-docs.test.js +0 -357
- package/dist/lib/ai/repo-docs.test.js.map +0 -1
- package/dist/lib/cleanpr/args.test.d.ts +0 -2
- package/dist/lib/cleanpr/args.test.d.ts.map +0 -1
- package/dist/lib/cleanpr/args.test.js +0 -269
- package/dist/lib/cleanpr/args.test.js.map +0 -1
- package/dist/lib/cleanpr/cleanup.test.d.ts +0 -2
- package/dist/lib/cleanpr/cleanup.test.d.ts.map +0 -1
- package/dist/lib/cleanpr/cleanup.test.js +0 -296
- package/dist/lib/cleanpr/cleanup.test.js.map +0 -1
- package/dist/lib/cleanpr/worktree-info.test.d.ts +0 -2
- package/dist/lib/cleanpr/worktree-info.test.d.ts.map +0 -1
- package/dist/lib/cleanpr/worktree-info.test.js +0 -228
- package/dist/lib/cleanpr/worktree-info.test.js.map +0 -1
- package/dist/lib/colors.test.d.ts +0 -2
- package/dist/lib/colors.test.d.ts.map +0 -1
- package/dist/lib/colors.test.js +0 -142
- package/dist/lib/colors.test.js.map +0 -1
- package/dist/lib/config-editor.test.d.ts +0 -11
- package/dist/lib/config-editor.test.d.ts.map +0 -1
- package/dist/lib/config-editor.test.js +0 -526
- package/dist/lib/config-editor.test.js.map +0 -1
- package/dist/lib/config-migration/detector.test.d.ts +0 -5
- package/dist/lib/config-migration/detector.test.d.ts.map +0 -1
- package/dist/lib/config-migration/detector.test.js +0 -201
- package/dist/lib/config-migration/detector.test.js.map +0 -1
- package/dist/lib/config-migration/reporter.test.d.ts +0 -5
- package/dist/lib/config-migration/reporter.test.d.ts.map +0 -1
- package/dist/lib/config-migration/reporter.test.js +0 -305
- package/dist/lib/config-migration/reporter.test.js.map +0 -1
- package/dist/lib/config-migration/runner.test.d.ts +0 -5
- package/dist/lib/config-migration/runner.test.d.ts.map +0 -1
- package/dist/lib/config-migration/runner.test.js +0 -235
- package/dist/lib/config-migration/runner.test.js.map +0 -1
- package/dist/lib/config-validation.test.d.ts +0 -5
- package/dist/lib/config-validation.test.d.ts.map +0 -1
- package/dist/lib/config-validation.test.js +0 -423
- package/dist/lib/config-validation.test.js.map +0 -1
- package/dist/lib/config.test.d.ts +0 -2
- package/dist/lib/config.test.d.ts.map +0 -1
- package/dist/lib/config.test.js +0 -554
- package/dist/lib/config.test.js.map +0 -1
- package/dist/lib/constants.test.d.ts +0 -5
- package/dist/lib/constants.test.d.ts.map +0 -1
- package/dist/lib/constants.test.js +0 -180
- package/dist/lib/constants.test.js.map +0 -1
- package/dist/lib/deprecation.test.d.ts +0 -2
- package/dist/lib/deprecation.test.d.ts.map +0 -1
- package/dist/lib/deprecation.test.js +0 -71
- package/dist/lib/deprecation.test.js.map +0 -1
- package/dist/lib/errors.test.d.ts +0 -2
- package/dist/lib/errors.test.d.ts.map +0 -1
- package/dist/lib/errors.test.js +0 -117
- package/dist/lib/errors.test.js.map +0 -1
- package/dist/lib/git.test.d.ts +0 -2
- package/dist/lib/git.test.d.ts.map +0 -1
- package/dist/lib/git.test.js +0 -608
- package/dist/lib/git.test.js.map +0 -1
- package/dist/lib/github.test.d.ts +0 -2
- package/dist/lib/github.test.d.ts.map +0 -1
- package/dist/lib/github.test.js +0 -441
- package/dist/lib/github.test.js.map +0 -1
- package/dist/lib/global-check.test.d.ts +0 -5
- package/dist/lib/global-check.test.d.ts.map +0 -1
- package/dist/lib/global-check.test.js +0 -150
- package/dist/lib/global-check.test.js.map +0 -1
- package/dist/lib/global-config.test.d.ts +0 -5
- package/dist/lib/global-config.test.d.ts.map +0 -1
- package/dist/lib/global-config.test.js +0 -282
- package/dist/lib/global-config.test.js.map +0 -1
- package/dist/lib/hooks/confirmation.test.d.ts +0 -7
- package/dist/lib/hooks/confirmation.test.d.ts.map +0 -1
- package/dist/lib/hooks/confirmation.test.js +0 -300
- package/dist/lib/hooks/confirmation.test.js.map +0 -1
- package/dist/lib/hooks/executor.test.d.ts +0 -5
- package/dist/lib/hooks/executor.test.d.ts.map +0 -1
- package/dist/lib/hooks/executor.test.js +0 -648
- package/dist/lib/hooks/executor.test.js.map +0 -1
- package/dist/lib/hooks/templates.test.d.ts +0 -5
- package/dist/lib/hooks/templates.test.d.ts.map +0 -1
- package/dist/lib/hooks/templates.test.js +0 -163
- package/dist/lib/hooks/templates.test.js.map +0 -1
- package/dist/lib/hooks/types.test.d.ts +0 -5
- package/dist/lib/hooks/types.test.d.ts.map +0 -1
- package/dist/lib/hooks/types.test.js +0 -132
- package/dist/lib/hooks/types.test.js.map +0 -1
- package/dist/lib/json-output.test.d.ts +0 -5
- package/dist/lib/json-output.test.d.ts.map +0 -1
- package/dist/lib/json-output.test.js +0 -261
- package/dist/lib/json-output.test.js.map +0 -1
- package/dist/lib/logger.test.d.ts +0 -14
- package/dist/lib/logger.test.d.ts.map +0 -1
- package/dist/lib/logger.test.js +0 -692
- package/dist/lib/logger.test.js.map +0 -1
- package/dist/lib/lswt/action-executors.test.d.ts +0 -2
- package/dist/lib/lswt/action-executors.test.d.ts.map +0 -1
- package/dist/lib/lswt/action-executors.test.js +0 -1127
- package/dist/lib/lswt/action-executors.test.js.map +0 -1
- package/dist/lib/lswt/actions.test.d.ts +0 -2
- package/dist/lib/lswt/actions.test.d.ts.map +0 -1
- package/dist/lib/lswt/actions.test.js +0 -497
- package/dist/lib/lswt/actions.test.js.map +0 -1
- package/dist/lib/lswt/args.test.d.ts +0 -2
- package/dist/lib/lswt/args.test.d.ts.map +0 -1
- package/dist/lib/lswt/args.test.js +0 -195
- package/dist/lib/lswt/args.test.js.map +0 -1
- package/dist/lib/lswt/environment.test.d.ts +0 -2
- package/dist/lib/lswt/environment.test.d.ts.map +0 -1
- package/dist/lib/lswt/environment.test.js +0 -544
- package/dist/lib/lswt/environment.test.js.map +0 -1
- package/dist/lib/lswt/formatters.test.d.ts +0 -2
- package/dist/lib/lswt/formatters.test.d.ts.map +0 -1
- package/dist/lib/lswt/formatters.test.js +0 -323
- package/dist/lib/lswt/formatters.test.js.map +0 -1
- package/dist/lib/lswt/fuzzy-search.test.d.ts +0 -5
- package/dist/lib/lswt/fuzzy-search.test.d.ts.map +0 -1
- package/dist/lib/lswt/fuzzy-search.test.js +0 -207
- package/dist/lib/lswt/fuzzy-search.test.js.map +0 -1
- package/dist/lib/lswt/interactive.test.d.ts +0 -2
- package/dist/lib/lswt/interactive.test.d.ts.map +0 -1
- package/dist/lib/lswt/interactive.test.js +0 -771
- package/dist/lib/lswt/interactive.test.js.map +0 -1
- package/dist/lib/lswt/table.test.d.ts +0 -5
- package/dist/lib/lswt/table.test.d.ts.map +0 -1
- package/dist/lib/lswt/table.test.js +0 -262
- package/dist/lib/lswt/table.test.js.map +0 -1
- package/dist/lib/lswt/worktree-info.test.d.ts +0 -2
- package/dist/lib/lswt/worktree-info.test.d.ts.map +0 -1
- package/dist/lib/lswt/worktree-info.test.js +0 -484
- package/dist/lib/lswt/worktree-info.test.js.map +0 -1
- package/dist/lib/newpr/action-deps.test.d.ts +0 -5
- package/dist/lib/newpr/action-deps.test.d.ts.map +0 -1
- package/dist/lib/newpr/action-deps.test.js +0 -111
- package/dist/lib/newpr/action-deps.test.js.map +0 -1
- package/dist/lib/newpr/actions.test.d.ts +0 -2
- package/dist/lib/newpr/actions.test.d.ts.map +0 -1
- package/dist/lib/newpr/actions.test.js +0 -254
- package/dist/lib/newpr/actions.test.js.map +0 -1
- package/dist/lib/newpr/args.test.d.ts +0 -2
- package/dist/lib/newpr/args.test.d.ts.map +0 -1
- package/dist/lib/newpr/args.test.js +0 -479
- package/dist/lib/newpr/args.test.js.map +0 -1
- package/dist/lib/newpr/hook-runner.test.d.ts +0 -7
- package/dist/lib/newpr/hook-runner.test.d.ts.map +0 -1
- package/dist/lib/newpr/hook-runner.test.js +0 -422
- package/dist/lib/newpr/hook-runner.test.js.map +0 -1
- package/dist/lib/newpr/plan-generator.test.d.ts +0 -7
- package/dist/lib/newpr/plan-generator.test.d.ts.map +0 -1
- package/dist/lib/newpr/plan-generator.test.js +0 -387
- package/dist/lib/newpr/plan-generator.test.js.map +0 -1
- package/dist/lib/newpr/scenario-handler.test.d.ts +0 -2
- package/dist/lib/newpr/scenario-handler.test.d.ts.map +0 -1
- package/dist/lib/newpr/scenario-handler.test.js +0 -256
- package/dist/lib/newpr/scenario-handler.test.js.map +0 -1
- package/dist/lib/prompts.test.d.ts +0 -2
- package/dist/lib/prompts.test.d.ts.map +0 -1
- package/dist/lib/prompts.test.js +0 -807
- package/dist/lib/prompts.test.js.map +0 -1
- package/dist/lib/prs/actions.test.d.ts +0 -5
- package/dist/lib/prs/actions.test.d.ts.map +0 -1
- package/dist/lib/prs/actions.test.js +0 -356
- package/dist/lib/prs/actions.test.js.map +0 -1
- package/dist/lib/prs/command.test.d.ts +0 -11
- package/dist/lib/prs/command.test.d.ts.map +0 -1
- package/dist/lib/prs/command.test.js +0 -409
- package/dist/lib/prs/command.test.js.map +0 -1
- package/dist/lib/prs/data.test.d.ts +0 -5
- package/dist/lib/prs/data.test.d.ts.map +0 -1
- package/dist/lib/prs/data.test.js +0 -417
- package/dist/lib/prs/data.test.js.map +0 -1
- package/dist/lib/prs/details.test.d.ts +0 -5
- package/dist/lib/prs/details.test.d.ts.map +0 -1
- package/dist/lib/prs/details.test.js +0 -325
- package/dist/lib/prs/details.test.js.map +0 -1
- package/dist/lib/prs/filters.test.d.ts +0 -5
- package/dist/lib/prs/filters.test.d.ts.map +0 -1
- package/dist/lib/prs/filters.test.js +0 -312
- package/dist/lib/prs/filters.test.js.map +0 -1
- package/dist/lib/prs/formatters.test.d.ts +0 -2
- package/dist/lib/prs/formatters.test.d.ts.map +0 -1
- package/dist/lib/prs/formatters.test.js +0 -387
- package/dist/lib/prs/formatters.test.js.map +0 -1
- package/dist/lib/prs/interactive.test.d.ts +0 -5
- package/dist/lib/prs/interactive.test.d.ts.map +0 -1
- package/dist/lib/prs/interactive.test.js +0 -517
- package/dist/lib/prs/interactive.test.js.map +0 -1
- package/dist/lib/schema.test.d.ts +0 -10
- package/dist/lib/schema.test.d.ts.map +0 -1
- package/dist/lib/schema.test.js +0 -309
- package/dist/lib/schema.test.js.map +0 -1
- package/dist/lib/state-detection.test.d.ts +0 -2
- package/dist/lib/state-detection.test.d.ts.map +0 -1
- package/dist/lib/state-detection.test.js +0 -451
- package/dist/lib/state-detection.test.js.map +0 -1
- package/dist/lib/ui/error.test.d.ts +0 -2
- package/dist/lib/ui/error.test.d.ts.map +0 -1
- package/dist/lib/ui/error.test.js +0 -143
- package/dist/lib/ui/error.test.js.map +0 -1
- package/dist/lib/ui/output.test.d.ts +0 -2
- package/dist/lib/ui/output.test.d.ts.map +0 -1
- package/dist/lib/ui/output.test.js +0 -59
- package/dist/lib/ui/output.test.js.map +0 -1
- package/dist/lib/ui/status.test.d.ts +0 -2
- package/dist/lib/ui/status.test.d.ts.map +0 -1
- package/dist/lib/ui/status.test.js +0 -158
- package/dist/lib/ui/status.test.js.map +0 -1
- package/dist/lib/ui/table.test.d.ts +0 -2
- package/dist/lib/ui/table.test.d.ts.map +0 -1
- package/dist/lib/ui/table.test.js +0 -115
- package/dist/lib/ui/table.test.js.map +0 -1
- package/dist/lib/ui/theme.test.d.ts +0 -2
- package/dist/lib/ui/theme.test.d.ts.map +0 -1
- package/dist/lib/ui/theme.test.js +0 -76
- package/dist/lib/ui/theme.test.js.map +0 -1
- package/dist/lib/wtconfig/config-manager.test.d.ts +0 -5
- package/dist/lib/wtconfig/config-manager.test.d.ts.map +0 -1
- package/dist/lib/wtconfig/config-manager.test.js +0 -501
- package/dist/lib/wtconfig/config-manager.test.js.map +0 -1
- package/dist/lib/wtconfig/environment.test.d.ts +0 -5
- package/dist/lib/wtconfig/environment.test.d.ts.map +0 -1
- package/dist/lib/wtconfig/environment.test.js +0 -285
- package/dist/lib/wtconfig/environment.test.js.map +0 -1
- package/dist/lib/wtlink/config-manifest.test.d.ts +0 -2
- package/dist/lib/wtlink/config-manifest.test.d.ts.map +0 -1
- package/dist/lib/wtlink/config-manifest.test.js +0 -486
- package/dist/lib/wtlink/config-manifest.test.js.map +0 -1
- package/dist/lib/wtlink/link-configs.test.d.ts +0 -2
- package/dist/lib/wtlink/link-configs.test.d.ts.map +0 -1
- package/dist/lib/wtlink/link-configs.test.js +0 -612
- package/dist/lib/wtlink/link-configs.test.js.map +0 -1
- package/dist/lib/wtlink/main-menu.test.d.ts +0 -5
- package/dist/lib/wtlink/main-menu.test.d.ts.map +0 -1
- package/dist/lib/wtlink/main-menu.test.js +0 -126
- package/dist/lib/wtlink/main-menu.test.js.map +0 -1
- package/dist/lib/wtlink/manage-manifest.test.d.ts +0 -2
- package/dist/lib/wtlink/manage-manifest.test.d.ts.map +0 -1
- package/dist/lib/wtlink/manage-manifest.test.js +0 -714
- package/dist/lib/wtlink/manage-manifest.test.js.map +0 -1
- package/dist/lib/wtlink/validate-manifest.test.d.ts +0 -2
- package/dist/lib/wtlink/validate-manifest.test.d.ts.map +0 -1
- package/dist/lib/wtlink/validate-manifest.test.js +0 -220
- package/dist/lib/wtlink/validate-manifest.test.js.map +0 -1
- package/dist/lib/wtstate/analyze.test.d.ts +0 -5
- package/dist/lib/wtstate/analyze.test.d.ts.map +0 -1
- package/dist/lib/wtstate/analyze.test.js +0 -282
- package/dist/lib/wtstate/analyze.test.js.map +0 -1
- package/dist/lib/wtstate/args.test.d.ts +0 -5
- package/dist/lib/wtstate/args.test.d.ts.map +0 -1
- package/dist/lib/wtstate/args.test.js +0 -120
- package/dist/lib/wtstate/args.test.js.map +0 -1
- package/dist/mcp/server.test.d.ts +0 -9
- package/dist/mcp/server.test.d.ts.map +0 -1
- package/dist/mcp/server.test.js +0 -550
- package/dist/mcp/server.test.js.map +0 -1
|
@@ -1,498 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeAll, afterAll, beforeEach } from 'vitest';
|
|
2
|
-
import { execSync } from 'child_process';
|
|
3
|
-
import fs from 'fs';
|
|
4
|
-
import path from 'path';
|
|
5
|
-
import os from 'os';
|
|
6
|
-
import * as git from '../lib/git.js';
|
|
7
|
-
import { analyzeGitState, detectScenario } from '../lib/state-detection.js';
|
|
8
|
-
import { executeStateAction, getBranchPoint } from '../lib/newpr/index.js';
|
|
9
|
-
import { getScenarioContext } from '../lib/newpr/scenario-handler.js';
|
|
10
|
-
/**
|
|
11
|
-
* Integration tests for the branchFrom: 'head' fix.
|
|
12
|
-
*
|
|
13
|
-
* This test suite verifies that when the user selects "Stage all and commit"
|
|
14
|
-
* or "Commit staged changes", the staged changes are preserved even when
|
|
15
|
-
* origin/main has moved ahead of the local main branch.
|
|
16
|
-
*
|
|
17
|
-
* The bug was: branchFrom defaulted to 'origin_main', so after git fetch,
|
|
18
|
-
* if origin/main was ahead, `git checkout -b <branch> origin/main` would
|
|
19
|
-
* reset the index and lose staged changes.
|
|
20
|
-
*
|
|
21
|
-
* The fix: changed branchFrom to 'head' for commit_all and commit_staged actions.
|
|
22
|
-
*/
|
|
23
|
-
describe('newpr integration - branchFrom: head fix', () => {
|
|
24
|
-
let tempDir;
|
|
25
|
-
let mainRepoDir;
|
|
26
|
-
let bareRepoDir;
|
|
27
|
-
/**
|
|
28
|
-
* Create a bare repo and main working repo
|
|
29
|
-
*/
|
|
30
|
-
beforeAll(() => {
|
|
31
|
-
tempDir = fs.realpathSync.native(fs.mkdtempSync(path.join(os.tmpdir(), 'newpr-branchfrom-test-')));
|
|
32
|
-
// Create a bare repo to act as origin
|
|
33
|
-
bareRepoDir = path.join(tempDir, 'origin.git');
|
|
34
|
-
fs.mkdirSync(bareRepoDir);
|
|
35
|
-
execSync('git init --bare', { cwd: bareRepoDir });
|
|
36
|
-
// Create the main working repo
|
|
37
|
-
mainRepoDir = path.join(tempDir, 'main-repo');
|
|
38
|
-
fs.mkdirSync(mainRepoDir);
|
|
39
|
-
execSync('git init', { cwd: mainRepoDir });
|
|
40
|
-
execSync('git config user.email "test@test.com"', { cwd: mainRepoDir });
|
|
41
|
-
execSync('git config user.name "Test User"', { cwd: mainRepoDir });
|
|
42
|
-
// Create initial commit with some files
|
|
43
|
-
fs.writeFileSync(path.join(mainRepoDir, 'README.md'), '# Test Repo\n');
|
|
44
|
-
fs.mkdirSync(path.join(mainRepoDir, 'src'), { recursive: true });
|
|
45
|
-
fs.writeFileSync(path.join(mainRepoDir, 'src', 'index.ts'), 'export const main = 1;\n');
|
|
46
|
-
execSync('git add .', { cwd: mainRepoDir });
|
|
47
|
-
execSync('git commit -m "Initial commit"', { cwd: mainRepoDir });
|
|
48
|
-
// Rename branch to 'main' for consistency
|
|
49
|
-
execSync('git branch -M main', { cwd: mainRepoDir, stdio: 'ignore' });
|
|
50
|
-
// Add origin and push
|
|
51
|
-
execSync(`git remote add origin "${bareRepoDir}"`, { cwd: mainRepoDir });
|
|
52
|
-
execSync('git push -u origin main', { cwd: mainRepoDir, stdio: 'ignore' });
|
|
53
|
-
});
|
|
54
|
-
afterAll(() => {
|
|
55
|
-
if (tempDir) {
|
|
56
|
-
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
beforeEach(() => {
|
|
60
|
-
// Reset to clean state on main
|
|
61
|
-
execSync('git checkout main', { cwd: mainRepoDir, stdio: 'ignore' });
|
|
62
|
-
execSync('git reset --hard origin/main', { cwd: mainRepoDir, stdio: 'ignore' });
|
|
63
|
-
execSync('git clean -fd', { cwd: mainRepoDir, stdio: 'ignore' });
|
|
64
|
-
// Clean up test branches
|
|
65
|
-
const branchesToClean = [
|
|
66
|
-
'test-unstaged-behind',
|
|
67
|
-
'test-staged-behind',
|
|
68
|
-
'test-both-behind',
|
|
69
|
-
'test-branch-changes',
|
|
70
|
-
'test-modification-behind',
|
|
71
|
-
];
|
|
72
|
-
for (const branch of branchesToClean) {
|
|
73
|
-
try {
|
|
74
|
-
execSync(`git branch -D ${branch} 2>/dev/null`, {
|
|
75
|
-
cwd: mainRepoDir,
|
|
76
|
-
stdio: 'ignore',
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
// Ignore
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
/**
|
|
85
|
-
* Helper: Create real ActionDeps using actual git operations
|
|
86
|
-
*/
|
|
87
|
-
function createRealDeps(cwd) {
|
|
88
|
-
return {
|
|
89
|
-
gitAdd: (addPath, cwdPath) => git.add(addPath, cwdPath ?? cwd),
|
|
90
|
-
gitStash: (options, cwdPath) => git.stash({ message: options.message, keepIndex: options.keepIndex }, cwdPath ?? cwd),
|
|
91
|
-
gitPush: (options, cwdPath) => git.push({ remote: options.remote, branch: options.branch, setUpstream: options.setUpstream }, cwdPath ?? cwd),
|
|
92
|
-
gitCommit: (options, cwdPath) => git.commit({ message: options.message, allowEmpty: options.allowEmpty }, cwdPath ?? cwd),
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Helper: Push a commit to origin/main from a separate clone
|
|
97
|
-
* This simulates another developer pushing changes while you have local work
|
|
98
|
-
*/
|
|
99
|
-
function pushUpstreamCommit(filename, content, message) {
|
|
100
|
-
const tempClone = path.join(tempDir, `temp-clone-${Date.now()}`);
|
|
101
|
-
try {
|
|
102
|
-
execSync(`git clone "${bareRepoDir}" "${tempClone}"`, { stdio: 'ignore' });
|
|
103
|
-
execSync('git config user.email "other@test.com"', { cwd: tempClone });
|
|
104
|
-
execSync('git config user.name "Other User"', { cwd: tempClone });
|
|
105
|
-
execSync('git checkout -B main origin/main', { cwd: tempClone, stdio: 'ignore' });
|
|
106
|
-
fs.writeFileSync(path.join(tempClone, filename), content);
|
|
107
|
-
execSync('git add .', { cwd: tempClone });
|
|
108
|
-
execSync(`git commit -m "${message}"`, { cwd: tempClone });
|
|
109
|
-
execSync('git push origin main', { cwd: tempClone, stdio: 'ignore' });
|
|
110
|
-
}
|
|
111
|
-
finally {
|
|
112
|
-
fs.rmSync(tempClone, { recursive: true, force: true });
|
|
113
|
-
}
|
|
114
|
-
// Fetch in main repo to get the new origin/main
|
|
115
|
-
execSync('git fetch origin', { cwd: mainRepoDir, stdio: 'ignore' });
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Helper: Assert that local main is behind origin/main
|
|
119
|
-
*/
|
|
120
|
-
function assertLocalBehindOrigin() {
|
|
121
|
-
const behindCount = execSync('git rev-list HEAD..origin/main --count', {
|
|
122
|
-
cwd: mainRepoDir,
|
|
123
|
-
encoding: 'utf8',
|
|
124
|
-
}).trim();
|
|
125
|
-
expect(parseInt(behindCount)).toBeGreaterThan(0);
|
|
126
|
-
}
|
|
127
|
-
describe('Scenario validation: getScenarioContext returns branchFrom: head', () => {
|
|
128
|
-
it('main_unstaged_same: commit_all uses branchFrom: head', () => {
|
|
129
|
-
const context = getScenarioContext('main_unstaged_same', {
|
|
130
|
-
worktreeType: 'main_worktree',
|
|
131
|
-
branchType: 'main',
|
|
132
|
-
currentBranch: 'main',
|
|
133
|
-
commitRelationship: 'same',
|
|
134
|
-
workingTreeStatus: 'unstaged_only',
|
|
135
|
-
localCommits: [],
|
|
136
|
-
stagedFiles: [],
|
|
137
|
-
unstagedFiles: ['file.ts'],
|
|
138
|
-
repoRoot: mainRepoDir,
|
|
139
|
-
repoName: 'main-repo',
|
|
140
|
-
}, 'main');
|
|
141
|
-
expect(context).not.toBeNull();
|
|
142
|
-
const commitAllAction = context.choices.find((c) => c.action?.action === 'commit_all');
|
|
143
|
-
expect(commitAllAction).toBeDefined();
|
|
144
|
-
expect(commitAllAction.action.branchFrom).toBe('head');
|
|
145
|
-
});
|
|
146
|
-
it('main_staged_same: commit_staged uses branchFrom: head', () => {
|
|
147
|
-
const context = getScenarioContext('main_staged_same', {
|
|
148
|
-
worktreeType: 'main_worktree',
|
|
149
|
-
branchType: 'main',
|
|
150
|
-
currentBranch: 'main',
|
|
151
|
-
commitRelationship: 'same',
|
|
152
|
-
workingTreeStatus: 'staged_only',
|
|
153
|
-
localCommits: [],
|
|
154
|
-
stagedFiles: ['file.ts'],
|
|
155
|
-
unstagedFiles: [],
|
|
156
|
-
repoRoot: mainRepoDir,
|
|
157
|
-
repoName: 'main-repo',
|
|
158
|
-
}, 'main');
|
|
159
|
-
expect(context).not.toBeNull();
|
|
160
|
-
const commitStagedAction = context.choices.find((c) => c.action?.action === 'commit_staged');
|
|
161
|
-
expect(commitStagedAction).toBeDefined();
|
|
162
|
-
expect(commitStagedAction.action.branchFrom).toBe('head');
|
|
163
|
-
});
|
|
164
|
-
it('main_both_same: both commit options use branchFrom: head', () => {
|
|
165
|
-
const context = getScenarioContext('main_both_same', {
|
|
166
|
-
worktreeType: 'main_worktree',
|
|
167
|
-
branchType: 'main',
|
|
168
|
-
currentBranch: 'main',
|
|
169
|
-
commitRelationship: 'same',
|
|
170
|
-
workingTreeStatus: 'both',
|
|
171
|
-
localCommits: [],
|
|
172
|
-
stagedFiles: ['staged.ts'],
|
|
173
|
-
unstagedFiles: ['unstaged.ts'],
|
|
174
|
-
repoRoot: mainRepoDir,
|
|
175
|
-
repoName: 'main-repo',
|
|
176
|
-
}, 'main');
|
|
177
|
-
expect(context).not.toBeNull();
|
|
178
|
-
const commitStagedAction = context.choices.find((c) => c.action?.action === 'commit_staged');
|
|
179
|
-
expect(commitStagedAction).toBeDefined();
|
|
180
|
-
expect(commitStagedAction.action.branchFrom).toBe('head');
|
|
181
|
-
const commitAllAction = context.choices.find((c) => c.action?.action === 'commit_all');
|
|
182
|
-
expect(commitAllAction).toBeDefined();
|
|
183
|
-
expect(commitAllAction.action.branchFrom).toBe('head');
|
|
184
|
-
});
|
|
185
|
-
it('branch_with_changes (no divergent): commit_all uses branchFrom: head', () => {
|
|
186
|
-
const context = getScenarioContext('branch_with_changes', {
|
|
187
|
-
worktreeType: 'main_worktree',
|
|
188
|
-
branchType: 'other',
|
|
189
|
-
currentBranch: 'my-feature',
|
|
190
|
-
commitRelationship: 'same',
|
|
191
|
-
workingTreeStatus: 'unstaged_only',
|
|
192
|
-
localCommits: [], // No divergent commits
|
|
193
|
-
stagedFiles: [],
|
|
194
|
-
unstagedFiles: ['file.ts'],
|
|
195
|
-
repoRoot: mainRepoDir,
|
|
196
|
-
repoName: 'main-repo',
|
|
197
|
-
}, 'main');
|
|
198
|
-
expect(context).not.toBeNull();
|
|
199
|
-
const commitAllAction = context.choices.find((c) => c.action?.action === 'commit_all');
|
|
200
|
-
expect(commitAllAction).toBeDefined();
|
|
201
|
-
expect(commitAllAction.action.branchFrom).toBe('head');
|
|
202
|
-
});
|
|
203
|
-
});
|
|
204
|
-
describe('main_unstaged_same: origin/main ahead - NEW file', () => {
|
|
205
|
-
it('preserves staged NEW file when branching from HEAD', () => {
|
|
206
|
-
const branchName = 'test-unstaged-behind';
|
|
207
|
-
// Push upstream commit to make origin/main ahead
|
|
208
|
-
pushUpstreamCommit('upstream.txt', 'upstream content\n', 'Upstream commit');
|
|
209
|
-
assertLocalBehindOrigin();
|
|
210
|
-
// Create a NEW unstaged file locally
|
|
211
|
-
fs.writeFileSync(path.join(mainRepoDir, 'newfile.ts'), 'export const x = 1;\n');
|
|
212
|
-
// Verify scenario detection (includes 'behind' which maps to main_unstaged_same)
|
|
213
|
-
const state = analyzeGitState('main', mainRepoDir);
|
|
214
|
-
expect(state.commitRelationship).toBe('ancestor'); // local is ancestor of origin/main
|
|
215
|
-
expect(detectScenario(state)).toBe('main_unstaged_same');
|
|
216
|
-
// Create action with branchFrom: head (the fix)
|
|
217
|
-
const action = {
|
|
218
|
-
action: 'commit_all',
|
|
219
|
-
branchFrom: 'head', // THE FIX
|
|
220
|
-
stashUnstaged: false,
|
|
221
|
-
};
|
|
222
|
-
// Execute the action (stages files)
|
|
223
|
-
const deps = createRealDeps(mainRepoDir);
|
|
224
|
-
const result = executeStateAction(action, 'Test', branchName, deps, mainRepoDir);
|
|
225
|
-
expect(result.success).toBe(true);
|
|
226
|
-
// Verify staged before checkout
|
|
227
|
-
const stagedBefore = git.getStagedFiles(mainRepoDir);
|
|
228
|
-
expect(stagedBefore).toContain('newfile.ts');
|
|
229
|
-
// Create branch from HEAD (the fix)
|
|
230
|
-
const branchPoint = getBranchPoint(action, 'main');
|
|
231
|
-
expect(branchPoint).toBe('HEAD');
|
|
232
|
-
git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
|
|
233
|
-
// Verify staged files PRESERVED after checkout from HEAD
|
|
234
|
-
const stagedAfter = git.getStagedFiles(mainRepoDir);
|
|
235
|
-
expect(stagedAfter).toContain('newfile.ts');
|
|
236
|
-
// Commit and verify
|
|
237
|
-
git.commit({ message: 'feat: Test' }, mainRepoDir);
|
|
238
|
-
expect(fs.existsSync(path.join(mainRepoDir, 'newfile.ts'))).toBe(true);
|
|
239
|
-
});
|
|
240
|
-
it('CONTRAST: would lose staged NEW file when branching from origin/main (old behavior)', () => {
|
|
241
|
-
const branchName = 'test-unstaged-behind-old';
|
|
242
|
-
// Push upstream commit
|
|
243
|
-
pushUpstreamCommit('upstream2.txt', 'upstream content 2\n', 'Upstream commit 2');
|
|
244
|
-
assertLocalBehindOrigin();
|
|
245
|
-
// Create a NEW unstaged file locally
|
|
246
|
-
fs.writeFileSync(path.join(mainRepoDir, 'newfile2.ts'), 'export const y = 2;\n');
|
|
247
|
-
// Stage it
|
|
248
|
-
git.add('.', mainRepoDir);
|
|
249
|
-
expect(git.getStagedFiles(mainRepoDir)).toContain('newfile2.ts');
|
|
250
|
-
// Try branching from origin/main (OLD behavior)
|
|
251
|
-
// Note: For NEW files, git actually preserves them even when checking out origin/main
|
|
252
|
-
// because they don't conflict. The real bug is with MODIFIED files.
|
|
253
|
-
git.exec(['checkout', '-b', branchName, 'origin/main'], { cwd: mainRepoDir });
|
|
254
|
-
// For NEW files, git preserves them - this test shows the edge case
|
|
255
|
-
const stagedAfter = git.getStagedFiles(mainRepoDir);
|
|
256
|
-
// New files ARE preserved even with origin/main checkout
|
|
257
|
-
// (the bug is more subtle - it's about modified files)
|
|
258
|
-
expect(stagedAfter).toContain('newfile2.ts');
|
|
259
|
-
});
|
|
260
|
-
});
|
|
261
|
-
describe('main_unstaged_same: origin/main ahead - MODIFIED existing file', () => {
|
|
262
|
-
it('preserves staged MODIFIED file when branching from HEAD', () => {
|
|
263
|
-
const branchName = 'test-modification-behind';
|
|
264
|
-
// Push upstream commit that modifies a DIFFERENT file
|
|
265
|
-
pushUpstreamCommit('upstream3.txt', 'upstream content 3\n', 'Upstream commit 3');
|
|
266
|
-
assertLocalBehindOrigin();
|
|
267
|
-
// Modify an existing file locally (src/index.ts)
|
|
268
|
-
fs.appendFileSync(path.join(mainRepoDir, 'src', 'index.ts'), '\nexport const added = 42;\n');
|
|
269
|
-
// Stage it
|
|
270
|
-
git.add('.', mainRepoDir);
|
|
271
|
-
expect(git.getStagedFiles(mainRepoDir)).toContain('src/index.ts');
|
|
272
|
-
// Create action with branchFrom: head (the fix)
|
|
273
|
-
const action = {
|
|
274
|
-
action: 'commit_all',
|
|
275
|
-
branchFrom: 'head', // THE FIX
|
|
276
|
-
stashUnstaged: false,
|
|
277
|
-
};
|
|
278
|
-
const branchPoint = getBranchPoint(action, 'main');
|
|
279
|
-
expect(branchPoint).toBe('HEAD');
|
|
280
|
-
// Create branch from HEAD
|
|
281
|
-
git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
|
|
282
|
-
// Verify staged files PRESERVED
|
|
283
|
-
const stagedAfter = git.getStagedFiles(mainRepoDir);
|
|
284
|
-
expect(stagedAfter).toContain('src/index.ts');
|
|
285
|
-
// Verify the modification is still there
|
|
286
|
-
const content = fs.readFileSync(path.join(mainRepoDir, 'src', 'index.ts'), 'utf8');
|
|
287
|
-
expect(content).toContain('export const added = 42;');
|
|
288
|
-
// Commit and verify
|
|
289
|
-
git.commit({ message: 'feat: Modified file' }, mainRepoDir);
|
|
290
|
-
// Verify commit contains our changes
|
|
291
|
-
const log = execSync('git show --name-only HEAD', {
|
|
292
|
-
cwd: mainRepoDir,
|
|
293
|
-
encoding: 'utf8',
|
|
294
|
-
});
|
|
295
|
-
expect(log).toContain('src/index.ts');
|
|
296
|
-
});
|
|
297
|
-
it('CONTRAST: loses staged MODIFIED file when origin/main changed SAME file (old behavior)', () => {
|
|
298
|
-
// This test demonstrates the actual bug: when origin/main has changes to the
|
|
299
|
-
// SAME file the user modified, checking out origin/main resets that file.
|
|
300
|
-
// First, push an upstream commit that modifies the SAME file (src/index.ts)
|
|
301
|
-
const tempClone = path.join(tempDir, `temp-clone-same-file-${Date.now()}`);
|
|
302
|
-
try {
|
|
303
|
-
execSync(`git clone "${bareRepoDir}" "${tempClone}"`, { stdio: 'ignore' });
|
|
304
|
-
execSync('git config user.email "other@test.com"', { cwd: tempClone });
|
|
305
|
-
execSync('git config user.name "Other User"', { cwd: tempClone });
|
|
306
|
-
execSync('git checkout -B main origin/main', { cwd: tempClone, stdio: 'ignore' });
|
|
307
|
-
// Modify the SAME file that user will also modify
|
|
308
|
-
fs.appendFileSync(path.join(tempClone, 'src', 'index.ts'), '\n// Upstream modification\n');
|
|
309
|
-
execSync('git add .', { cwd: tempClone });
|
|
310
|
-
execSync('git commit -m "Upstream change to index.ts"', { cwd: tempClone });
|
|
311
|
-
execSync('git push origin main', { cwd: tempClone, stdio: 'ignore' });
|
|
312
|
-
}
|
|
313
|
-
finally {
|
|
314
|
-
fs.rmSync(tempClone, { recursive: true, force: true });
|
|
315
|
-
}
|
|
316
|
-
// Fetch to get the updated origin/main
|
|
317
|
-
execSync('git fetch origin', { cwd: mainRepoDir, stdio: 'ignore' });
|
|
318
|
-
assertLocalBehindOrigin();
|
|
319
|
-
// Now modify the SAME file locally (src/index.ts)
|
|
320
|
-
fs.appendFileSync(path.join(mainRepoDir, 'src', 'index.ts'), '\nexport const lost = 99;\n');
|
|
321
|
-
// Stage it
|
|
322
|
-
git.add('.', mainRepoDir);
|
|
323
|
-
const stagedBefore = git.getStagedFiles(mainRepoDir);
|
|
324
|
-
expect(stagedBefore).toContain('src/index.ts');
|
|
325
|
-
// Try branching from origin/main (OLD behavior)
|
|
326
|
-
// Git will either refuse (conflict) or reset the file
|
|
327
|
-
let checkoutSucceeded = false;
|
|
328
|
-
try {
|
|
329
|
-
git.exec(['checkout', '-b', 'test-lost-changes', 'origin/main'], { cwd: mainRepoDir });
|
|
330
|
-
checkoutSucceeded = true;
|
|
331
|
-
}
|
|
332
|
-
catch {
|
|
333
|
-
// Expected: git refuses due to conflict
|
|
334
|
-
checkoutSucceeded = false;
|
|
335
|
-
}
|
|
336
|
-
if (checkoutSucceeded) {
|
|
337
|
-
// If checkout succeeded, the file was reset to origin/main's version
|
|
338
|
-
const content = fs.readFileSync(path.join(mainRepoDir, 'src', 'index.ts'), 'utf8');
|
|
339
|
-
// Our local change is gone, replaced with upstream version
|
|
340
|
-
expect(content).toContain('// Upstream modification');
|
|
341
|
-
expect(content).not.toContain('export const lost = 99;');
|
|
342
|
-
}
|
|
343
|
-
else {
|
|
344
|
-
// Git protected us by refusing the checkout - this is also valid behavior
|
|
345
|
-
// The point is: branchFrom: 'head' avoids this situation entirely
|
|
346
|
-
expect(true).toBe(true); // Test passes - git protected the user
|
|
347
|
-
}
|
|
348
|
-
});
|
|
349
|
-
});
|
|
350
|
-
describe('main_staged_same: origin/main ahead', () => {
|
|
351
|
-
it('preserves staged file when branching from HEAD', () => {
|
|
352
|
-
const branchName = 'test-staged-behind';
|
|
353
|
-
// Push upstream commit
|
|
354
|
-
pushUpstreamCommit('upstream5.txt', 'upstream content 5\n', 'Upstream commit 5');
|
|
355
|
-
assertLocalBehindOrigin();
|
|
356
|
-
// Create and stage a new file
|
|
357
|
-
fs.writeFileSync(path.join(mainRepoDir, 'staged-new.ts'), 'export const staged = 1;\n');
|
|
358
|
-
git.add('staged-new.ts', mainRepoDir);
|
|
359
|
-
// Verify scenario
|
|
360
|
-
const state = analyzeGitState('main', mainRepoDir);
|
|
361
|
-
expect(detectScenario(state)).toBe('main_staged_same');
|
|
362
|
-
// Create action with branchFrom: head
|
|
363
|
-
const action = {
|
|
364
|
-
action: 'commit_staged',
|
|
365
|
-
branchFrom: 'head',
|
|
366
|
-
stashUnstaged: false,
|
|
367
|
-
};
|
|
368
|
-
// Create branch from HEAD
|
|
369
|
-
const branchPoint = getBranchPoint(action, 'main');
|
|
370
|
-
git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
|
|
371
|
-
// Verify staged files preserved
|
|
372
|
-
const stagedAfter = git.getStagedFiles(mainRepoDir);
|
|
373
|
-
expect(stagedAfter).toContain('staged-new.ts');
|
|
374
|
-
});
|
|
375
|
-
});
|
|
376
|
-
describe('main_both_same: origin/main ahead', () => {
|
|
377
|
-
it('preserves both staged and unstaged changes when branching from HEAD', () => {
|
|
378
|
-
const branchName = 'test-both-behind';
|
|
379
|
-
// Push upstream commit
|
|
380
|
-
pushUpstreamCommit('upstream6.txt', 'upstream content 6\n', 'Upstream commit 6');
|
|
381
|
-
assertLocalBehindOrigin();
|
|
382
|
-
// Create staged file
|
|
383
|
-
fs.writeFileSync(path.join(mainRepoDir, 'staged-both.ts'), 'export const staged = 1;\n');
|
|
384
|
-
git.add('staged-both.ts', mainRepoDir);
|
|
385
|
-
// Create unstaged file
|
|
386
|
-
fs.writeFileSync(path.join(mainRepoDir, 'unstaged-both.ts'), 'export const unstaged = 2;\n');
|
|
387
|
-
// Verify scenario
|
|
388
|
-
const state = analyzeGitState('main', mainRepoDir);
|
|
389
|
-
expect(detectScenario(state)).toBe('main_both_same');
|
|
390
|
-
// Create action (commit_all stages everything)
|
|
391
|
-
const action = {
|
|
392
|
-
action: 'commit_all',
|
|
393
|
-
branchFrom: 'head',
|
|
394
|
-
stashUnstaged: false,
|
|
395
|
-
};
|
|
396
|
-
// Execute action to stage all
|
|
397
|
-
const deps = createRealDeps(mainRepoDir);
|
|
398
|
-
executeStateAction(action, 'Test', branchName, deps, mainRepoDir);
|
|
399
|
-
// Verify both files are staged
|
|
400
|
-
const stagedBefore = git.getStagedFiles(mainRepoDir);
|
|
401
|
-
expect(stagedBefore).toContain('staged-both.ts');
|
|
402
|
-
expect(stagedBefore).toContain('unstaged-both.ts');
|
|
403
|
-
// Create branch from HEAD
|
|
404
|
-
const branchPoint = getBranchPoint(action, 'main');
|
|
405
|
-
git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
|
|
406
|
-
// Verify all staged files preserved
|
|
407
|
-
const stagedAfter = git.getStagedFiles(mainRepoDir);
|
|
408
|
-
expect(stagedAfter).toContain('staged-both.ts');
|
|
409
|
-
expect(stagedAfter).toContain('unstaged-both.ts');
|
|
410
|
-
});
|
|
411
|
-
});
|
|
412
|
-
describe('branch_with_changes: no divergent commits', () => {
|
|
413
|
-
it('preserves staged changes when branching from HEAD', () => {
|
|
414
|
-
const branchName = 'test-branch-changes';
|
|
415
|
-
// Create a feature branch at main (no divergent commits)
|
|
416
|
-
execSync('git checkout -b feature-no-diverge', { cwd: mainRepoDir });
|
|
417
|
-
// Push upstream commit to origin/main
|
|
418
|
-
pushUpstreamCommit('upstream7.txt', 'upstream content 7\n', 'Upstream commit 7');
|
|
419
|
-
// Create unstaged file BEFORE analyzing state
|
|
420
|
-
fs.writeFileSync(path.join(mainRepoDir, 'branch-new.ts'), 'export const branch = 1;\n');
|
|
421
|
-
// Now verify state and scenario (must be AFTER creating the file)
|
|
422
|
-
const state = analyzeGitState('main', mainRepoDir);
|
|
423
|
-
expect(state.branchType).toBe('other');
|
|
424
|
-
expect(state.localCommits.length).toBe(0); // No divergent commits
|
|
425
|
-
expect(state.workingTreeStatus).toBe('unstaged_only');
|
|
426
|
-
// Verify scenario
|
|
427
|
-
const scenario = detectScenario(state);
|
|
428
|
-
expect(scenario).toBe('branch_with_changes');
|
|
429
|
-
// Create action with branchFrom: head
|
|
430
|
-
const action = {
|
|
431
|
-
action: 'commit_all',
|
|
432
|
-
branchFrom: 'head',
|
|
433
|
-
stashUnstaged: false,
|
|
434
|
-
};
|
|
435
|
-
// Execute action to stage all
|
|
436
|
-
const deps = createRealDeps(mainRepoDir);
|
|
437
|
-
executeStateAction(action, 'Test', branchName, deps, mainRepoDir);
|
|
438
|
-
// Create branch from HEAD
|
|
439
|
-
const branchPoint = getBranchPoint(action, 'main');
|
|
440
|
-
git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
|
|
441
|
-
// Verify staged files preserved
|
|
442
|
-
const stagedAfter = git.getStagedFiles(mainRepoDir);
|
|
443
|
-
expect(stagedAfter).toContain('branch-new.ts');
|
|
444
|
-
});
|
|
445
|
-
});
|
|
446
|
-
describe('Full flow simulation: newpr with fix', () => {
|
|
447
|
-
it('complete flow: stage, checkout HEAD, commit, push-ready', () => {
|
|
448
|
-
const branchName = 'feat/complete-flow-test';
|
|
449
|
-
// Push upstream commit to make origin/main ahead
|
|
450
|
-
pushUpstreamCommit('upstream-final.txt', 'final upstream\n', 'Final upstream commit');
|
|
451
|
-
assertLocalBehindOrigin();
|
|
452
|
-
// Create multiple files (mix of new and modified)
|
|
453
|
-
fs.writeFileSync(path.join(mainRepoDir, 'new-feature.ts'), 'export const feature = 1;\n');
|
|
454
|
-
fs.appendFileSync(path.join(mainRepoDir, 'README.md'), '\n## New Section\n');
|
|
455
|
-
// Verify initial state
|
|
456
|
-
const state = analyzeGitState('main', mainRepoDir);
|
|
457
|
-
expect(detectScenario(state)).toBe('main_unstaged_same');
|
|
458
|
-
// Get the action from getScenarioContext (simulating user selection)
|
|
459
|
-
const context = getScenarioContext(detectScenario(state), state, 'main');
|
|
460
|
-
const commitAllAction = context.choices.find((c) => c.action?.action === 'commit_all');
|
|
461
|
-
expect(commitAllAction.action.branchFrom).toBe('head'); // Verify fix is in place
|
|
462
|
-
// Execute the action
|
|
463
|
-
const deps = createRealDeps(mainRepoDir);
|
|
464
|
-
const result = executeStateAction(commitAllAction.action, 'Complete flow test', branchName, deps, mainRepoDir);
|
|
465
|
-
expect(result.success).toBe(true);
|
|
466
|
-
// Verify staged
|
|
467
|
-
const stagedBefore = git.getStagedFiles(mainRepoDir);
|
|
468
|
-
expect(stagedBefore).toContain('new-feature.ts');
|
|
469
|
-
expect(stagedBefore).toContain('README.md');
|
|
470
|
-
// Checkout from HEAD (what the fix does)
|
|
471
|
-
const branchPoint = getBranchPoint(commitAllAction.action, 'main');
|
|
472
|
-
expect(branchPoint).toBe('HEAD');
|
|
473
|
-
git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
|
|
474
|
-
// Verify staged preserved
|
|
475
|
-
const stagedAfter = git.getStagedFiles(mainRepoDir);
|
|
476
|
-
expect(stagedAfter).toContain('new-feature.ts');
|
|
477
|
-
expect(stagedAfter).toContain('README.md');
|
|
478
|
-
// Commit
|
|
479
|
-
git.commit({ message: 'feat: Complete flow test\n\nš¤ Created with newpr' }, mainRepoDir);
|
|
480
|
-
// Verify commit contains our files
|
|
481
|
-
const showOutput = execSync('git show --name-only HEAD', {
|
|
482
|
-
cwd: mainRepoDir,
|
|
483
|
-
encoding: 'utf8',
|
|
484
|
-
});
|
|
485
|
-
expect(showOutput).toContain('new-feature.ts');
|
|
486
|
-
expect(showOutput).toContain('README.md');
|
|
487
|
-
expect(showOutput).toContain('Complete flow test');
|
|
488
|
-
// Verify we can switch back to main without our files
|
|
489
|
-
git.checkout('main', mainRepoDir);
|
|
490
|
-
expect(fs.existsSync(path.join(mainRepoDir, 'new-feature.ts'))).toBe(false);
|
|
491
|
-
// Verify our branch has the files
|
|
492
|
-
git.checkout(branchName, mainRepoDir);
|
|
493
|
-
expect(fs.existsSync(path.join(mainRepoDir, 'new-feature.ts'))).toBe(true);
|
|
494
|
-
expect(fs.readFileSync(path.join(mainRepoDir, 'README.md'), 'utf8')).toContain('## New Section');
|
|
495
|
-
});
|
|
496
|
-
});
|
|
497
|
-
});
|
|
498
|
-
//# sourceMappingURL=newpr-branchfrom-head.integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"newpr-branchfrom-head.integration.test.js","sourceRoot":"","sources":["../../src/integration/newpr-branchfrom-head.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"newpr.integration.test.d.ts","sourceRoot":"","sources":["../../src/integration/newpr.integration.test.ts"],"names":[],"mappings":""}
|