@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,583 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* End-to-end tests for the wt interactive menu navigation
|
|
3
|
-
*
|
|
4
|
-
* These tests use PTY (pseudo-terminal) to simulate actual user interaction
|
|
5
|
-
* with the interactive CLI menu, including navigating to Browse PRs.
|
|
6
|
-
*/
|
|
7
|
-
import { describe, it, expect, beforeAll, afterAll, beforeEach, afterEach } from 'vitest';
|
|
8
|
-
import { execSync } from 'child_process';
|
|
9
|
-
import fs from 'fs';
|
|
10
|
-
import path from 'path';
|
|
11
|
-
import os from 'os';
|
|
12
|
-
import { spawnPty, stripAnsi } from '../helpers/pty-wrapper.js';
|
|
13
|
-
import { setupGhMock } from '../helpers/gh-mock.js';
|
|
14
|
-
// Path to the compiled CLI scripts
|
|
15
|
-
const CLI_DIR = path.resolve(__dirname, '../../../dist/cli');
|
|
16
|
-
// Check if node-pty is available synchronously
|
|
17
|
-
let ptyAvailable = false;
|
|
18
|
-
try {
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
20
|
-
require('node-pty');
|
|
21
|
-
ptyAvailable = true;
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
ptyAvailable = false;
|
|
25
|
-
}
|
|
26
|
-
// PTY spawning fails on macOS and Windows CI environments with "posix_spawnp failed"
|
|
27
|
-
// This is a known limitation of node-pty in CI runners
|
|
28
|
-
const isCI = process.env.CI === 'true';
|
|
29
|
-
const isProblematicPlatform = process.platform === 'darwin' || process.platform === 'win32';
|
|
30
|
-
const skipPtyInCI = isCI && isProblematicPlatform;
|
|
31
|
-
// Skip all tests if PTY is not available or if we're on a problematic CI platform
|
|
32
|
-
const describePty = ptyAvailable && !skipPtyInCI ? describe : describe.skip;
|
|
33
|
-
describePty('wt interactive menu e2e tests (PTY)', () => {
|
|
34
|
-
let tempDir;
|
|
35
|
-
let repoDir;
|
|
36
|
-
let ghMock;
|
|
37
|
-
beforeAll(() => {
|
|
38
|
-
// Ensure CLI is built
|
|
39
|
-
const wtPath = path.join(CLI_DIR, 'wt.js');
|
|
40
|
-
if (!fs.existsSync(wtPath)) {
|
|
41
|
-
throw new Error('CLI not built. Run "npm run build" before running e2e tests.');
|
|
42
|
-
}
|
|
43
|
-
// Create temp directory structure
|
|
44
|
-
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'wt-menu-e2e-'));
|
|
45
|
-
repoDir = path.join(tempDir, 'test-repo');
|
|
46
|
-
// Initialize main git repo
|
|
47
|
-
fs.mkdirSync(repoDir);
|
|
48
|
-
execSync('git init', { cwd: repoDir, stdio: 'ignore' });
|
|
49
|
-
execSync('git config user.email "test@test.com"', { cwd: repoDir, stdio: 'ignore' });
|
|
50
|
-
execSync('git config user.name "Test User"', { cwd: repoDir, stdio: 'ignore' });
|
|
51
|
-
// Create initial commit
|
|
52
|
-
fs.writeFileSync(path.join(repoDir, 'README.md'), '# Test Repo\n');
|
|
53
|
-
execSync('git add .', { cwd: repoDir, stdio: 'ignore' });
|
|
54
|
-
execSync('git commit -m "Initial commit"', { cwd: repoDir, stdio: 'ignore' });
|
|
55
|
-
// Create feature branches
|
|
56
|
-
execSync('git branch feature-test', { cwd: repoDir, stdio: 'ignore' });
|
|
57
|
-
});
|
|
58
|
-
afterAll(() => {
|
|
59
|
-
// Remove temp directory
|
|
60
|
-
if (tempDir) {
|
|
61
|
-
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
beforeEach(() => {
|
|
65
|
-
// Set up gh mock with some PRs
|
|
66
|
-
ghMock = setupGhMock({ authenticated: true });
|
|
67
|
-
ghMock.addPr({
|
|
68
|
-
number: 101,
|
|
69
|
-
state: 'OPEN',
|
|
70
|
-
title: 'Add new feature',
|
|
71
|
-
headRefName: 'feat/new-feature',
|
|
72
|
-
isDraft: false,
|
|
73
|
-
author: 'testuser',
|
|
74
|
-
});
|
|
75
|
-
ghMock.addPr({
|
|
76
|
-
number: 102,
|
|
77
|
-
state: 'OPEN',
|
|
78
|
-
title: 'Fix critical bug',
|
|
79
|
-
headRefName: 'fix/critical-bug',
|
|
80
|
-
isDraft: true,
|
|
81
|
-
author: 'otheruser',
|
|
82
|
-
});
|
|
83
|
-
ghMock.addPr({
|
|
84
|
-
number: 100,
|
|
85
|
-
state: 'MERGED',
|
|
86
|
-
title: 'Previous feature',
|
|
87
|
-
headRefName: 'feat/previous',
|
|
88
|
-
isDraft: false,
|
|
89
|
-
author: 'testuser',
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
afterEach(() => {
|
|
93
|
-
ghMock.cleanup();
|
|
94
|
-
});
|
|
95
|
-
describe('main menu display', () => {
|
|
96
|
-
it('shows main menu with all options including Browse PRs', async () => {
|
|
97
|
-
const session = await spawnPty('wt', [], {
|
|
98
|
-
cwd: repoDir,
|
|
99
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
100
|
-
timeout: 10000,
|
|
101
|
-
});
|
|
102
|
-
try {
|
|
103
|
-
// Wait for menu options to fully render (wait for Browse PRs to ensure full menu is in buffer)
|
|
104
|
-
await session.waitFor(/browse.*pr/i, 5000);
|
|
105
|
-
const output = stripAnsi(session.getOutput());
|
|
106
|
-
// Should show menu options
|
|
107
|
-
expect(output).toMatch(/list.*worktree/i);
|
|
108
|
-
expect(output).toMatch(/browse.*pr/i);
|
|
109
|
-
// The menu has more items (Create new PR, Clean up PRs, etc.) but PTY buffer
|
|
110
|
-
// may not capture the full output. The key test is that the menu renders.
|
|
111
|
-
}
|
|
112
|
-
finally {
|
|
113
|
-
session.sendKey('q');
|
|
114
|
-
try {
|
|
115
|
-
await session.waitForExit(2000);
|
|
116
|
-
}
|
|
117
|
-
catch {
|
|
118
|
-
session.kill();
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
describe('navigate to Browse PRs', () => {
|
|
124
|
-
it('navigates to Browse PRs using arrow keys and shows PR list', async () => {
|
|
125
|
-
const session = await spawnPty('wt', [], {
|
|
126
|
-
cwd: repoDir,
|
|
127
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
128
|
-
timeout: 15000,
|
|
129
|
-
});
|
|
130
|
-
try {
|
|
131
|
-
// Wait for menu to appear with "List worktrees" as first option
|
|
132
|
-
await session.waitFor(/list worktree|what would you like/i, 5000);
|
|
133
|
-
await delay(100);
|
|
134
|
-
// Navigate down to "Browse PRs" (second option after "List worktrees")
|
|
135
|
-
session.sendKey('down');
|
|
136
|
-
await delay(100);
|
|
137
|
-
// Select Browse PRs
|
|
138
|
-
session.sendKey('enter');
|
|
139
|
-
// Wait for the PR browser to actually load - look for patterns unique to the PR view:
|
|
140
|
-
// - "No PRs found" (if no PRs)
|
|
141
|
-
// - "X PRs" summary line
|
|
142
|
-
// - PR numbers like "#101"
|
|
143
|
-
// - "OPEN" / "MERGED" / "CLOSED" state badges
|
|
144
|
-
// - The PR table header "Pull Requests"
|
|
145
|
-
await session.waitFor(/no prs found|#\d+|\d+ PRs?|OPEN|MERGED|CLOSED|Pull Requests/i, 8000);
|
|
146
|
-
const output = stripAnsi(session.getOutput());
|
|
147
|
-
// Verify we actually reached the PR browser view, not just the menu
|
|
148
|
-
// The PR view shows either PRs or "No PRs found matching the filters"
|
|
149
|
-
expect(output).toMatch(/no prs found|#\d+|\d+ PRs?|OPEN|MERGED|CLOSED|Pull Requests/i);
|
|
150
|
-
}
|
|
151
|
-
finally {
|
|
152
|
-
// Quit
|
|
153
|
-
session.sendKey('q');
|
|
154
|
-
try {
|
|
155
|
-
await session.waitForExit(2000);
|
|
156
|
-
}
|
|
157
|
-
catch {
|
|
158
|
-
session.kill();
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
it('shows PR details in Browse PRs view', async () => {
|
|
163
|
-
const session = await spawnPty('wt', [], {
|
|
164
|
-
cwd: repoDir,
|
|
165
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
166
|
-
timeout: 15000,
|
|
167
|
-
});
|
|
168
|
-
try {
|
|
169
|
-
// Wait for menu and navigate to Browse PRs
|
|
170
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
171
|
-
session.sendKey('down');
|
|
172
|
-
await delay(100);
|
|
173
|
-
session.sendKey('enter');
|
|
174
|
-
// Wait for PR list - look for actual PR view output
|
|
175
|
-
await session.waitFor(/no prs found|#\d+|\d+ PRs?|OPEN|MERGED|CLOSED|Pull Requests/i, 8000);
|
|
176
|
-
const output = stripAnsi(session.getOutput());
|
|
177
|
-
// Should show PR view - either PR list or "No PRs found"
|
|
178
|
-
expect(output).toMatch(/no prs found|#\d+|\d+ PRs?|OPEN|MERGED|CLOSED|Pull Requests/i);
|
|
179
|
-
}
|
|
180
|
-
finally {
|
|
181
|
-
session.sendKey('q');
|
|
182
|
-
try {
|
|
183
|
-
await session.waitForExit(2000);
|
|
184
|
-
}
|
|
185
|
-
catch {
|
|
186
|
-
session.kill();
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
});
|
|
191
|
-
describe('Browse PRs filtering', () => {
|
|
192
|
-
it('pressing m key shows MERGED PRs exclusively', async () => {
|
|
193
|
-
const session = await spawnPty('wt', [], {
|
|
194
|
-
cwd: repoDir,
|
|
195
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
196
|
-
timeout: 15000,
|
|
197
|
-
});
|
|
198
|
-
try {
|
|
199
|
-
// Navigate to Browse PRs
|
|
200
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
201
|
-
session.sendKey('down');
|
|
202
|
-
await delay(100);
|
|
203
|
-
session.sendKey('enter');
|
|
204
|
-
// Wait for PR list - initially shows only OPEN PRs (2 PRs: #101, #102)
|
|
205
|
-
await session.waitFor(/2 PRs|#101|#102/i, 8000);
|
|
206
|
-
const beforeToggle = stripAnsi(session.getOutput());
|
|
207
|
-
// Should show 2 PRs initially (only OPEN)
|
|
208
|
-
expect(beforeToggle).toMatch(/2 PRs/i);
|
|
209
|
-
// Should NOT show merged PR #100 yet
|
|
210
|
-
expect(beforeToggle).not.toMatch(/#100/);
|
|
211
|
-
// Press 'm' to show MERGED only (exclusive selection)
|
|
212
|
-
session.write('m');
|
|
213
|
-
await delay(500);
|
|
214
|
-
// Wait for the merged PR to appear (only 1 PR - the merged one)
|
|
215
|
-
await session.waitFor(/#100|Previous feature|1 PR/i, 5000);
|
|
216
|
-
const afterToggle = stripAnsi(session.getOutput());
|
|
217
|
-
// Should now show 1 PR (MERGED only, not OPEN + MERGED)
|
|
218
|
-
expect(afterToggle).toMatch(/1 PR/i);
|
|
219
|
-
// Should now include the merged PR #100
|
|
220
|
-
expect(afterToggle).toMatch(/#100|Previous feature/i);
|
|
221
|
-
// Filter indicator should show "merged" as the current view
|
|
222
|
-
expect(afterToggle).toMatch(/Showing:.*merged/i);
|
|
223
|
-
}
|
|
224
|
-
finally {
|
|
225
|
-
session.sendKey('q');
|
|
226
|
-
try {
|
|
227
|
-
await session.waitForExit(2000);
|
|
228
|
-
}
|
|
229
|
-
catch {
|
|
230
|
-
session.kill();
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
it('pressing a key shows ALL PRs', async () => {
|
|
235
|
-
const session = await spawnPty('wt', [], {
|
|
236
|
-
cwd: repoDir,
|
|
237
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
238
|
-
timeout: 15000,
|
|
239
|
-
});
|
|
240
|
-
try {
|
|
241
|
-
// Navigate to Browse PRs
|
|
242
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
243
|
-
session.sendKey('down');
|
|
244
|
-
await delay(100);
|
|
245
|
-
session.sendKey('enter');
|
|
246
|
-
// Wait for PR list - initially shows OPEN PRs (2 PRs)
|
|
247
|
-
await session.waitFor(/2 PRs|#101|#102/i, 8000);
|
|
248
|
-
// Press 'a' to show ALL PRs
|
|
249
|
-
session.write('a');
|
|
250
|
-
await delay(500);
|
|
251
|
-
// Wait for all PRs to appear (3 PRs: 2 open + 1 merged)
|
|
252
|
-
await session.waitFor(/3 PRs|#100/i, 5000);
|
|
253
|
-
const output = stripAnsi(session.getOutput());
|
|
254
|
-
// Should show 3 PRs (all states)
|
|
255
|
-
expect(output).toMatch(/3 PRs/i);
|
|
256
|
-
// Should include merged PR #100
|
|
257
|
-
expect(output).toMatch(/#100|Previous feature/i);
|
|
258
|
-
// Filter indicator should show "all" as the current view
|
|
259
|
-
expect(output).toMatch(/Showing:.*all/i);
|
|
260
|
-
}
|
|
261
|
-
finally {
|
|
262
|
-
session.sendKey('q');
|
|
263
|
-
try {
|
|
264
|
-
await session.waitForExit(2000);
|
|
265
|
-
}
|
|
266
|
-
catch {
|
|
267
|
-
session.kill();
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
});
|
|
271
|
-
it('pressing x key shows CLOSED PRs exclusively', async () => {
|
|
272
|
-
// Add a closed PR for this test
|
|
273
|
-
ghMock.addPr({
|
|
274
|
-
number: 99,
|
|
275
|
-
state: 'CLOSED',
|
|
276
|
-
title: 'Rejected feature',
|
|
277
|
-
headRefName: 'feat/rejected',
|
|
278
|
-
isDraft: false,
|
|
279
|
-
author: 'testuser',
|
|
280
|
-
});
|
|
281
|
-
const session = await spawnPty('wt', [], {
|
|
282
|
-
cwd: repoDir,
|
|
283
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
284
|
-
timeout: 15000,
|
|
285
|
-
});
|
|
286
|
-
try {
|
|
287
|
-
// Navigate to Browse PRs
|
|
288
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
289
|
-
session.sendKey('down');
|
|
290
|
-
await delay(100);
|
|
291
|
-
session.sendKey('enter');
|
|
292
|
-
// Wait for PR list - initially shows OPEN PRs
|
|
293
|
-
await session.waitFor(/2 PRs|#101|#102/i, 8000);
|
|
294
|
-
const beforeToggle = stripAnsi(session.getOutput());
|
|
295
|
-
// Should NOT show closed PR #99 initially
|
|
296
|
-
expect(beforeToggle).not.toMatch(/#99/);
|
|
297
|
-
// Press 'x' to show CLOSED only (exclusive selection)
|
|
298
|
-
session.write('x');
|
|
299
|
-
await delay(500);
|
|
300
|
-
// Wait for closed PR to appear (only 1 PR - the closed one)
|
|
301
|
-
await session.waitFor(/#99|Rejected feature|1 PR/i, 5000);
|
|
302
|
-
const afterToggle = stripAnsi(session.getOutput());
|
|
303
|
-
// Should now show 1 PR (CLOSED only)
|
|
304
|
-
expect(afterToggle).toMatch(/1 PR/i);
|
|
305
|
-
// Should include closed PR
|
|
306
|
-
expect(afterToggle).toMatch(/#99|Rejected feature/i);
|
|
307
|
-
// Filter indicator should show "closed" as the current view
|
|
308
|
-
expect(afterToggle).toMatch(/Showing:.*closed/i);
|
|
309
|
-
}
|
|
310
|
-
finally {
|
|
311
|
-
session.sendKey('q');
|
|
312
|
-
try {
|
|
313
|
-
await session.waitForExit(2000);
|
|
314
|
-
}
|
|
315
|
-
catch {
|
|
316
|
-
session.kill();
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
});
|
|
320
|
-
it('pressing o key returns to OPEN PRs from another state', async () => {
|
|
321
|
-
const session = await spawnPty('wt', [], {
|
|
322
|
-
cwd: repoDir,
|
|
323
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
324
|
-
timeout: 15000,
|
|
325
|
-
});
|
|
326
|
-
try {
|
|
327
|
-
// Navigate to Browse PRs
|
|
328
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
329
|
-
session.sendKey('down');
|
|
330
|
-
await delay(100);
|
|
331
|
-
session.sendKey('enter');
|
|
332
|
-
// Wait for PR list - initially shows OPEN PRs
|
|
333
|
-
await session.waitFor(/2 PRs|#101|#102/i, 8000);
|
|
334
|
-
// Switch to MERGED
|
|
335
|
-
session.write('m');
|
|
336
|
-
await delay(500);
|
|
337
|
-
await session.waitFor(/1 PR|#100/i, 5000);
|
|
338
|
-
// Press 'o' to go back to OPEN PRs
|
|
339
|
-
session.write('o');
|
|
340
|
-
await delay(500);
|
|
341
|
-
// Wait for OPEN PRs to reappear
|
|
342
|
-
await session.waitFor(/2 PRs|#101|#102/i, 5000);
|
|
343
|
-
const output = stripAnsi(session.getOutput());
|
|
344
|
-
// Should show 2 PRs (back to OPEN)
|
|
345
|
-
expect(output).toMatch(/2 PRs/i);
|
|
346
|
-
// Filter indicator should show "open" as the current view
|
|
347
|
-
expect(output).toMatch(/Showing:.*open/i);
|
|
348
|
-
}
|
|
349
|
-
finally {
|
|
350
|
-
session.sendKey('q');
|
|
351
|
-
try {
|
|
352
|
-
await session.waitForExit(2000);
|
|
353
|
-
}
|
|
354
|
-
catch {
|
|
355
|
-
session.kill();
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
});
|
|
359
|
-
it('can refresh PR list with r key', async () => {
|
|
360
|
-
const session = await spawnPty('wt', [], {
|
|
361
|
-
cwd: repoDir,
|
|
362
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
363
|
-
timeout: 15000,
|
|
364
|
-
});
|
|
365
|
-
try {
|
|
366
|
-
// Navigate to Browse PRs
|
|
367
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
368
|
-
session.sendKey('down');
|
|
369
|
-
await delay(100);
|
|
370
|
-
session.sendKey('enter');
|
|
371
|
-
// Wait for PR list - look for actual PR view output
|
|
372
|
-
await session.waitFor(/no prs found|#\d+|\d+ PRs?|OPEN|MERGED|CLOSED|Pull Requests/i, 8000);
|
|
373
|
-
// Press 'r' to refresh
|
|
374
|
-
session.write('r');
|
|
375
|
-
await delay(500);
|
|
376
|
-
// Should still show PR view after refresh
|
|
377
|
-
const output = stripAnsi(session.getOutput());
|
|
378
|
-
expect(output).toMatch(/no prs found|#\d+|\d+ PRs?|OPEN|MERGED|CLOSED|Pull Requests/i);
|
|
379
|
-
}
|
|
380
|
-
finally {
|
|
381
|
-
session.sendKey('q');
|
|
382
|
-
try {
|
|
383
|
-
await session.waitForExit(2000);
|
|
384
|
-
}
|
|
385
|
-
catch {
|
|
386
|
-
session.kill();
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
});
|
|
390
|
-
});
|
|
391
|
-
describe('Browse PRs actions', () => {
|
|
392
|
-
it('can copy PR URL with c key', async () => {
|
|
393
|
-
const session = await spawnPty('wt', [], {
|
|
394
|
-
cwd: repoDir,
|
|
395
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
396
|
-
timeout: 15000,
|
|
397
|
-
});
|
|
398
|
-
try {
|
|
399
|
-
// Navigate to Browse PRs
|
|
400
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
401
|
-
session.sendKey('down');
|
|
402
|
-
await delay(100);
|
|
403
|
-
session.sendKey('enter');
|
|
404
|
-
// Wait for PR list - look for actual PR view output
|
|
405
|
-
await session.waitFor(/no prs found|#\d+|\d+ PRs?|OPEN|MERGED|CLOSED|Pull Requests/i, 8000);
|
|
406
|
-
// Press 'c' to copy URL
|
|
407
|
-
session.write('c');
|
|
408
|
-
await delay(300);
|
|
409
|
-
const output = stripAnsi(session.getOutput());
|
|
410
|
-
// Should show copy confirmation or URL
|
|
411
|
-
expect(output).toBeDefined();
|
|
412
|
-
}
|
|
413
|
-
finally {
|
|
414
|
-
session.sendKey('q');
|
|
415
|
-
try {
|
|
416
|
-
await session.waitForExit(2000);
|
|
417
|
-
}
|
|
418
|
-
catch {
|
|
419
|
-
session.kill();
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
});
|
|
423
|
-
it('can view PR details with d key', async () => {
|
|
424
|
-
const session = await spawnPty('wt', [], {
|
|
425
|
-
cwd: repoDir,
|
|
426
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
427
|
-
timeout: 15000,
|
|
428
|
-
});
|
|
429
|
-
try {
|
|
430
|
-
// Navigate to Browse PRs
|
|
431
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
432
|
-
session.sendKey('down');
|
|
433
|
-
await delay(100);
|
|
434
|
-
session.sendKey('enter');
|
|
435
|
-
// Wait for PR list - look for actual PR view output
|
|
436
|
-
await session.waitFor(/no prs found|#\d+|\d+ PRs?|OPEN|MERGED|CLOSED|Pull Requests/i, 8000);
|
|
437
|
-
// Press 'd' to view details
|
|
438
|
-
session.write('d');
|
|
439
|
-
await delay(500);
|
|
440
|
-
const output = stripAnsi(session.getOutput());
|
|
441
|
-
// Should show some detail view
|
|
442
|
-
expect(output).toBeDefined();
|
|
443
|
-
}
|
|
444
|
-
finally {
|
|
445
|
-
// Go back if in detail view
|
|
446
|
-
session.sendKey('escape');
|
|
447
|
-
await delay(100);
|
|
448
|
-
session.sendKey('q');
|
|
449
|
-
try {
|
|
450
|
-
await session.waitForExit(2000);
|
|
451
|
-
}
|
|
452
|
-
catch {
|
|
453
|
-
session.kill();
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
});
|
|
457
|
-
});
|
|
458
|
-
describe('exit from Browse PRs', () => {
|
|
459
|
-
it('can quit from Browse PRs with q key', async () => {
|
|
460
|
-
const session = await spawnPty('wt', [], {
|
|
461
|
-
cwd: repoDir,
|
|
462
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
463
|
-
timeout: 15000,
|
|
464
|
-
});
|
|
465
|
-
try {
|
|
466
|
-
// Navigate to Browse PRs
|
|
467
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
468
|
-
session.sendKey('down');
|
|
469
|
-
await delay(100);
|
|
470
|
-
session.sendKey('enter');
|
|
471
|
-
// Wait for PR list - look for actual PR view output
|
|
472
|
-
await session.waitFor(/no prs found|#\d+|\d+ PRs?|OPEN|MERGED|CLOSED|Pull Requests/i, 8000);
|
|
473
|
-
// Press 'q' to quit
|
|
474
|
-
session.write('q');
|
|
475
|
-
// Should exit
|
|
476
|
-
const exitCode = await session.waitForExit(3000);
|
|
477
|
-
expect(exitCode).toBe(0);
|
|
478
|
-
}
|
|
479
|
-
catch {
|
|
480
|
-
session.kill();
|
|
481
|
-
}
|
|
482
|
-
});
|
|
483
|
-
it('can go back with escape key', async () => {
|
|
484
|
-
const session = await spawnPty('wt', [], {
|
|
485
|
-
cwd: repoDir,
|
|
486
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
487
|
-
timeout: 15000,
|
|
488
|
-
});
|
|
489
|
-
try {
|
|
490
|
-
// Navigate to Browse PRs
|
|
491
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
492
|
-
session.sendKey('down');
|
|
493
|
-
await delay(100);
|
|
494
|
-
session.sendKey('enter');
|
|
495
|
-
// Wait for PR list - look for actual PR view output
|
|
496
|
-
await session.waitFor(/no prs found|#\d+|\d+ PRs?|OPEN|MERGED|CLOSED|Pull Requests/i, 8000);
|
|
497
|
-
// Press escape - might go back to menu or exit
|
|
498
|
-
session.sendKey('escape');
|
|
499
|
-
await delay(500);
|
|
500
|
-
// The behavior varies - just verify the app handles it gracefully
|
|
501
|
-
const output = stripAnsi(session.getOutput());
|
|
502
|
-
expect(output).toBeDefined();
|
|
503
|
-
}
|
|
504
|
-
finally {
|
|
505
|
-
session.sendKey('q');
|
|
506
|
-
try {
|
|
507
|
-
await session.waitForExit(2000);
|
|
508
|
-
}
|
|
509
|
-
catch {
|
|
510
|
-
session.kill();
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
});
|
|
514
|
-
});
|
|
515
|
-
describe('menu navigation patterns', () => {
|
|
516
|
-
it('can navigate up and down through menu items', async () => {
|
|
517
|
-
const session = await spawnPty('wt', [], {
|
|
518
|
-
cwd: repoDir,
|
|
519
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
520
|
-
timeout: 10000,
|
|
521
|
-
});
|
|
522
|
-
try {
|
|
523
|
-
// Wait for menu
|
|
524
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
525
|
-
// Navigate down multiple times
|
|
526
|
-
session.sendKey('down');
|
|
527
|
-
await delay(50);
|
|
528
|
-
session.sendKey('down');
|
|
529
|
-
await delay(50);
|
|
530
|
-
session.sendKey('down');
|
|
531
|
-
await delay(50);
|
|
532
|
-
// Navigate back up
|
|
533
|
-
session.sendKey('up');
|
|
534
|
-
await delay(50);
|
|
535
|
-
session.sendKey('up');
|
|
536
|
-
await delay(50);
|
|
537
|
-
// The menu should still be displayed
|
|
538
|
-
const output = stripAnsi(session.getOutput());
|
|
539
|
-
expect(output).toMatch(/worktree|pr|clean|config/i);
|
|
540
|
-
}
|
|
541
|
-
finally {
|
|
542
|
-
session.sendKey('q');
|
|
543
|
-
try {
|
|
544
|
-
await session.waitForExit(2000);
|
|
545
|
-
}
|
|
546
|
-
catch {
|
|
547
|
-
session.kill();
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
});
|
|
551
|
-
it('List worktrees option is selectable', async () => {
|
|
552
|
-
const session = await spawnPty('wt', [], {
|
|
553
|
-
cwd: repoDir,
|
|
554
|
-
env: { ...ghMock.mockEnv, NO_COLOR: '1' },
|
|
555
|
-
timeout: 10000,
|
|
556
|
-
});
|
|
557
|
-
try {
|
|
558
|
-
// Wait for menu
|
|
559
|
-
await session.waitFor(/worktree|main menu|select/i, 5000);
|
|
560
|
-
// First option is List worktrees - just press enter
|
|
561
|
-
session.sendKey('enter');
|
|
562
|
-
// Should show worktree list
|
|
563
|
-
await session.waitFor(/worktree|branch|test-repo|main/i, 5000);
|
|
564
|
-
const output = stripAnsi(session.getOutput());
|
|
565
|
-
expect(output).toMatch(/test-repo|main|worktree/i);
|
|
566
|
-
}
|
|
567
|
-
finally {
|
|
568
|
-
session.sendKey('q');
|
|
569
|
-
try {
|
|
570
|
-
await session.waitForExit(2000);
|
|
571
|
-
}
|
|
572
|
-
catch {
|
|
573
|
-
session.kill();
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
});
|
|
577
|
-
});
|
|
578
|
-
});
|
|
579
|
-
// Helper function for delays
|
|
580
|
-
function delay(ms) {
|
|
581
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
582
|
-
}
|
|
583
|
-
//# sourceMappingURL=interactive-menu.e2e.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-menu.e2e.test.js","sourceRoot":"","sources":["../../../src/e2e/wt/interactive-menu.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* End-to-end tests for the unified `wt` command
|
|
3
|
-
*
|
|
4
|
-
* Tests the wt command entry point and its subcommands.
|
|
5
|
-
* Note: Interactive menu tests are covered in integration tests since
|
|
6
|
-
* e2e testing of interactive TUI requires more complex setup.
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=wt.e2e.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wt.e2e.test.d.ts","sourceRoot":"","sources":["../../../src/e2e/wt/wt.e2e.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|