@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.
Files changed (431) hide show
  1. package/README.md +4 -4
  2. package/dist/lib/config.d.ts +2 -1
  3. package/dist/lib/config.d.ts.map +1 -1
  4. package/dist/lib/config.js +11 -0
  5. package/dist/lib/config.js.map +1 -1
  6. package/package.json +12 -3
  7. package/schemas/worktreerc.schema.json +1 -1
  8. package/dist/api/list.test.d.ts +0 -5
  9. package/dist/api/list.test.d.ts.map +0 -1
  10. package/dist/api/list.test.js +0 -390
  11. package/dist/api/list.test.js.map +0 -1
  12. package/dist/cli/cleanpr.test.d.ts +0 -2
  13. package/dist/cli/cleanpr.test.d.ts.map +0 -1
  14. package/dist/cli/cleanpr.test.js +0 -954
  15. package/dist/cli/cleanpr.test.js.map +0 -1
  16. package/dist/cli/lswt.test.d.ts +0 -2
  17. package/dist/cli/lswt.test.d.ts.map +0 -1
  18. package/dist/cli/lswt.test.js +0 -376
  19. package/dist/cli/lswt.test.js.map +0 -1
  20. package/dist/cli/newpr.test.d.ts +0 -2
  21. package/dist/cli/newpr.test.d.ts.map +0 -1
  22. package/dist/cli/newpr.test.js +0 -1182
  23. package/dist/cli/newpr.test.js.map +0 -1
  24. package/dist/cli/prs.test.d.ts +0 -8
  25. package/dist/cli/prs.test.d.ts.map +0 -1
  26. package/dist/cli/prs.test.js +0 -463
  27. package/dist/cli/prs.test.js.map +0 -1
  28. package/dist/cli/wt/clean.test.d.ts +0 -8
  29. package/dist/cli/wt/clean.test.d.ts.map +0 -1
  30. package/dist/cli/wt/clean.test.js +0 -624
  31. package/dist/cli/wt/clean.test.js.map +0 -1
  32. package/dist/cli/wt/completion.test.d.ts +0 -5
  33. package/dist/cli/wt/completion.test.d.ts.map +0 -1
  34. package/dist/cli/wt/completion.test.js +0 -275
  35. package/dist/cli/wt/completion.test.js.map +0 -1
  36. package/dist/cli/wt/config.test.d.ts +0 -7
  37. package/dist/cli/wt/config.test.d.ts.map +0 -1
  38. package/dist/cli/wt/config.test.js +0 -440
  39. package/dist/cli/wt/config.test.js.map +0 -1
  40. package/dist/cli/wt/entry.test.d.ts +0 -8
  41. package/dist/cli/wt/entry.test.d.ts.map +0 -1
  42. package/dist/cli/wt/entry.test.js +0 -201
  43. package/dist/cli/wt/entry.test.js.map +0 -1
  44. package/dist/cli/wt/init.test.d.ts +0 -5
  45. package/dist/cli/wt/init.test.d.ts.map +0 -1
  46. package/dist/cli/wt/init.test.js +0 -165
  47. package/dist/cli/wt/init.test.js.map +0 -1
  48. package/dist/cli/wt/init.unit.test.d.ts +0 -5
  49. package/dist/cli/wt/init.unit.test.d.ts.map +0 -1
  50. package/dist/cli/wt/init.unit.test.js +0 -432
  51. package/dist/cli/wt/init.unit.test.js.map +0 -1
  52. package/dist/cli/wt/interactive-menu.test.d.ts +0 -12
  53. package/dist/cli/wt/interactive-menu.test.d.ts.map +0 -1
  54. package/dist/cli/wt/interactive-menu.test.js +0 -796
  55. package/dist/cli/wt/interactive-menu.test.js.map +0 -1
  56. package/dist/cli/wt/list.test.d.ts +0 -10
  57. package/dist/cli/wt/list.test.d.ts.map +0 -1
  58. package/dist/cli/wt/list.test.js +0 -157
  59. package/dist/cli/wt/list.test.js.map +0 -1
  60. package/dist/cli/wt/prs.test.d.ts +0 -5
  61. package/dist/cli/wt/prs.test.d.ts.map +0 -1
  62. package/dist/cli/wt/prs.test.js +0 -410
  63. package/dist/cli/wt/prs.test.js.map +0 -1
  64. package/dist/cli/wt/run-command.test.d.ts +0 -5
  65. package/dist/cli/wt/run-command.test.d.ts.map +0 -1
  66. package/dist/cli/wt/run-command.test.js +0 -88
  67. package/dist/cli/wt/run-command.test.js.map +0 -1
  68. package/dist/cli/wt/state.test.d.ts +0 -9
  69. package/dist/cli/wt/state.test.d.ts.map +0 -1
  70. package/dist/cli/wt/state.test.js +0 -127
  71. package/dist/cli/wt/state.test.js.map +0 -1
  72. package/dist/cli/wt/wt.test.d.ts +0 -8
  73. package/dist/cli/wt/wt.test.d.ts.map +0 -1
  74. package/dist/cli/wt/wt.test.js +0 -739
  75. package/dist/cli/wt/wt.test.js.map +0 -1
  76. package/dist/cli/wt.unit.test.d.ts +0 -7
  77. package/dist/cli/wt.unit.test.d.ts.map +0 -1
  78. package/dist/cli/wt.unit.test.js +0 -160
  79. package/dist/cli/wt.unit.test.js.map +0 -1
  80. package/dist/cli/wtconfig.test.d.ts +0 -5
  81. package/dist/cli/wtconfig.test.d.ts.map +0 -1
  82. package/dist/cli/wtconfig.test.js +0 -1289
  83. package/dist/cli/wtconfig.test.js.map +0 -1
  84. package/dist/cli/wtlink.test.d.ts +0 -2
  85. package/dist/cli/wtlink.test.d.ts.map +0 -1
  86. package/dist/cli/wtlink.test.js +0 -249
  87. package/dist/cli/wtlink.test.js.map +0 -1
  88. package/dist/cli/wtstate.test.d.ts +0 -5
  89. package/dist/cli/wtstate.test.d.ts.map +0 -1
  90. package/dist/cli/wtstate.test.js +0 -193
  91. package/dist/cli/wtstate.test.js.map +0 -1
  92. package/dist/e2e/cleanpr/cleanpr.e2e.test.d.ts +0 -2
  93. package/dist/e2e/cleanpr/cleanpr.e2e.test.d.ts.map +0 -1
  94. package/dist/e2e/cleanpr/cleanpr.e2e.test.js +0 -326
  95. package/dist/e2e/cleanpr/cleanpr.e2e.test.js.map +0 -1
  96. package/dist/e2e/cli.e2e.test.d.ts +0 -2
  97. package/dist/e2e/cli.e2e.test.d.ts.map +0 -1
  98. package/dist/e2e/cli.e2e.test.js +0 -417
  99. package/dist/e2e/cli.e2e.test.js.map +0 -1
  100. package/dist/e2e/lswt/lswt.e2e.test.d.ts +0 -2
  101. package/dist/e2e/lswt/lswt.e2e.test.d.ts.map +0 -1
  102. package/dist/e2e/lswt/lswt.e2e.test.js +0 -361
  103. package/dist/e2e/lswt/lswt.e2e.test.js.map +0 -1
  104. package/dist/e2e/newpr/newpr.e2e.test.d.ts +0 -2
  105. package/dist/e2e/newpr/newpr.e2e.test.d.ts.map +0 -1
  106. package/dist/e2e/newpr/newpr.e2e.test.js +0 -286
  107. package/dist/e2e/newpr/newpr.e2e.test.js.map +0 -1
  108. package/dist/e2e/newpr/scenarios.e2e.test.d.ts +0 -2
  109. package/dist/e2e/newpr/scenarios.e2e.test.d.ts.map +0 -1
  110. package/dist/e2e/newpr/scenarios.e2e.test.js +0 -426
  111. package/dist/e2e/newpr/scenarios.e2e.test.js.map +0 -1
  112. package/dist/e2e/newpr-full-flow.e2e.test.d.ts +0 -2
  113. package/dist/e2e/newpr-full-flow.e2e.test.d.ts.map +0 -1
  114. package/dist/e2e/newpr-full-flow.e2e.test.js +0 -280
  115. package/dist/e2e/newpr-full-flow.e2e.test.js.map +0 -1
  116. package/dist/e2e/prs/prs.e2e.test.d.ts +0 -7
  117. package/dist/e2e/prs/prs.e2e.test.d.ts.map +0 -1
  118. package/dist/e2e/prs/prs.e2e.test.js +0 -606
  119. package/dist/e2e/prs/prs.e2e.test.js.map +0 -1
  120. package/dist/e2e/workflows/pr-lifecycle.e2e.test.d.ts +0 -2
  121. package/dist/e2e/workflows/pr-lifecycle.e2e.test.d.ts.map +0 -1
  122. package/dist/e2e/workflows/pr-lifecycle.e2e.test.js +0 -298
  123. package/dist/e2e/workflows/pr-lifecycle.e2e.test.js.map +0 -1
  124. package/dist/e2e/wt/interactive-menu.e2e.test.d.ts +0 -8
  125. package/dist/e2e/wt/interactive-menu.e2e.test.d.ts.map +0 -1
  126. package/dist/e2e/wt/interactive-menu.e2e.test.js +0 -583
  127. package/dist/e2e/wt/interactive-menu.e2e.test.js.map +0 -1
  128. package/dist/e2e/wt/wt.e2e.test.d.ts +0 -9
  129. package/dist/e2e/wt/wt.e2e.test.d.ts.map +0 -1
  130. package/dist/e2e/wt/wt.e2e.test.js +0 -597
  131. package/dist/e2e/wt/wt.e2e.test.js.map +0 -1
  132. package/dist/e2e/wtlink/wtlink.e2e.test.d.ts +0 -2
  133. package/dist/e2e/wtlink/wtlink.e2e.test.d.ts.map +0 -1
  134. package/dist/e2e/wtlink/wtlink.e2e.test.js +0 -416
  135. package/dist/e2e/wtlink/wtlink.e2e.test.js.map +0 -1
  136. package/dist/integration/git.integration.test.d.ts +0 -2
  137. package/dist/integration/git.integration.test.d.ts.map +0 -1
  138. package/dist/integration/git.integration.test.js +0 -336
  139. package/dist/integration/git.integration.test.js.map +0 -1
  140. package/dist/integration/lswt-remote-pr.integration.test.d.ts +0 -2
  141. package/dist/integration/lswt-remote-pr.integration.test.d.ts.map +0 -1
  142. package/dist/integration/lswt-remote-pr.integration.test.js +0 -222
  143. package/dist/integration/lswt-remote-pr.integration.test.js.map +0 -1
  144. package/dist/integration/newpr-branchfrom-head.integration.test.d.ts +0 -2
  145. package/dist/integration/newpr-branchfrom-head.integration.test.d.ts.map +0 -1
  146. package/dist/integration/newpr-branchfrom-head.integration.test.js +0 -498
  147. package/dist/integration/newpr-branchfrom-head.integration.test.js.map +0 -1
  148. package/dist/integration/newpr.integration.test.d.ts +0 -2
  149. package/dist/integration/newpr.integration.test.d.ts.map +0 -1
  150. package/dist/integration/newpr.integration.test.js +0 -460
  151. package/dist/integration/newpr.integration.test.js.map +0 -1
  152. package/dist/integration/prs.integration.test.d.ts +0 -8
  153. package/dist/integration/prs.integration.test.d.ts.map +0 -1
  154. package/dist/integration/prs.integration.test.js +0 -478
  155. package/dist/integration/prs.integration.test.js.map +0 -1
  156. package/dist/lib/ai/base-provider.test.d.ts +0 -7
  157. package/dist/lib/ai/base-provider.test.d.ts.map +0 -1
  158. package/dist/lib/ai/base-provider.test.js +0 -319
  159. package/dist/lib/ai/base-provider.test.js.map +0 -1
  160. package/dist/lib/ai/cli-provider.test.d.ts +0 -5
  161. package/dist/lib/ai/cli-provider.test.d.ts.map +0 -1
  162. package/dist/lib/ai/cli-provider.test.js +0 -460
  163. package/dist/lib/ai/cli-provider.test.js.map +0 -1
  164. package/dist/lib/ai/fallback-provider.test.d.ts +0 -7
  165. package/dist/lib/ai/fallback-provider.test.d.ts.map +0 -1
  166. package/dist/lib/ai/fallback-provider.test.js +0 -165
  167. package/dist/lib/ai/fallback-provider.test.js.map +0 -1
  168. package/dist/lib/ai/generation-service.test.d.ts +0 -7
  169. package/dist/lib/ai/generation-service.test.d.ts.map +0 -1
  170. package/dist/lib/ai/generation-service.test.js +0 -213
  171. package/dist/lib/ai/generation-service.test.js.map +0 -1
  172. package/dist/lib/ai/provider-manager.test.d.ts +0 -5
  173. package/dist/lib/ai/provider-manager.test.d.ts.map +0 -1
  174. package/dist/lib/ai/provider-manager.test.js +0 -312
  175. package/dist/lib/ai/provider-manager.test.js.map +0 -1
  176. package/dist/lib/ai/repo-docs.test.d.ts +0 -5
  177. package/dist/lib/ai/repo-docs.test.d.ts.map +0 -1
  178. package/dist/lib/ai/repo-docs.test.js +0 -357
  179. package/dist/lib/ai/repo-docs.test.js.map +0 -1
  180. package/dist/lib/cleanpr/args.test.d.ts +0 -2
  181. package/dist/lib/cleanpr/args.test.d.ts.map +0 -1
  182. package/dist/lib/cleanpr/args.test.js +0 -269
  183. package/dist/lib/cleanpr/args.test.js.map +0 -1
  184. package/dist/lib/cleanpr/cleanup.test.d.ts +0 -2
  185. package/dist/lib/cleanpr/cleanup.test.d.ts.map +0 -1
  186. package/dist/lib/cleanpr/cleanup.test.js +0 -296
  187. package/dist/lib/cleanpr/cleanup.test.js.map +0 -1
  188. package/dist/lib/cleanpr/worktree-info.test.d.ts +0 -2
  189. package/dist/lib/cleanpr/worktree-info.test.d.ts.map +0 -1
  190. package/dist/lib/cleanpr/worktree-info.test.js +0 -228
  191. package/dist/lib/cleanpr/worktree-info.test.js.map +0 -1
  192. package/dist/lib/colors.test.d.ts +0 -2
  193. package/dist/lib/colors.test.d.ts.map +0 -1
  194. package/dist/lib/colors.test.js +0 -142
  195. package/dist/lib/colors.test.js.map +0 -1
  196. package/dist/lib/config-editor.test.d.ts +0 -11
  197. package/dist/lib/config-editor.test.d.ts.map +0 -1
  198. package/dist/lib/config-editor.test.js +0 -526
  199. package/dist/lib/config-editor.test.js.map +0 -1
  200. package/dist/lib/config-migration/detector.test.d.ts +0 -5
  201. package/dist/lib/config-migration/detector.test.d.ts.map +0 -1
  202. package/dist/lib/config-migration/detector.test.js +0 -201
  203. package/dist/lib/config-migration/detector.test.js.map +0 -1
  204. package/dist/lib/config-migration/reporter.test.d.ts +0 -5
  205. package/dist/lib/config-migration/reporter.test.d.ts.map +0 -1
  206. package/dist/lib/config-migration/reporter.test.js +0 -305
  207. package/dist/lib/config-migration/reporter.test.js.map +0 -1
  208. package/dist/lib/config-migration/runner.test.d.ts +0 -5
  209. package/dist/lib/config-migration/runner.test.d.ts.map +0 -1
  210. package/dist/lib/config-migration/runner.test.js +0 -235
  211. package/dist/lib/config-migration/runner.test.js.map +0 -1
  212. package/dist/lib/config-validation.test.d.ts +0 -5
  213. package/dist/lib/config-validation.test.d.ts.map +0 -1
  214. package/dist/lib/config-validation.test.js +0 -423
  215. package/dist/lib/config-validation.test.js.map +0 -1
  216. package/dist/lib/config.test.d.ts +0 -2
  217. package/dist/lib/config.test.d.ts.map +0 -1
  218. package/dist/lib/config.test.js +0 -554
  219. package/dist/lib/config.test.js.map +0 -1
  220. package/dist/lib/constants.test.d.ts +0 -5
  221. package/dist/lib/constants.test.d.ts.map +0 -1
  222. package/dist/lib/constants.test.js +0 -180
  223. package/dist/lib/constants.test.js.map +0 -1
  224. package/dist/lib/deprecation.test.d.ts +0 -2
  225. package/dist/lib/deprecation.test.d.ts.map +0 -1
  226. package/dist/lib/deprecation.test.js +0 -71
  227. package/dist/lib/deprecation.test.js.map +0 -1
  228. package/dist/lib/errors.test.d.ts +0 -2
  229. package/dist/lib/errors.test.d.ts.map +0 -1
  230. package/dist/lib/errors.test.js +0 -117
  231. package/dist/lib/errors.test.js.map +0 -1
  232. package/dist/lib/git.test.d.ts +0 -2
  233. package/dist/lib/git.test.d.ts.map +0 -1
  234. package/dist/lib/git.test.js +0 -608
  235. package/dist/lib/git.test.js.map +0 -1
  236. package/dist/lib/github.test.d.ts +0 -2
  237. package/dist/lib/github.test.d.ts.map +0 -1
  238. package/dist/lib/github.test.js +0 -441
  239. package/dist/lib/github.test.js.map +0 -1
  240. package/dist/lib/global-check.test.d.ts +0 -5
  241. package/dist/lib/global-check.test.d.ts.map +0 -1
  242. package/dist/lib/global-check.test.js +0 -150
  243. package/dist/lib/global-check.test.js.map +0 -1
  244. package/dist/lib/global-config.test.d.ts +0 -5
  245. package/dist/lib/global-config.test.d.ts.map +0 -1
  246. package/dist/lib/global-config.test.js +0 -282
  247. package/dist/lib/global-config.test.js.map +0 -1
  248. package/dist/lib/hooks/confirmation.test.d.ts +0 -7
  249. package/dist/lib/hooks/confirmation.test.d.ts.map +0 -1
  250. package/dist/lib/hooks/confirmation.test.js +0 -300
  251. package/dist/lib/hooks/confirmation.test.js.map +0 -1
  252. package/dist/lib/hooks/executor.test.d.ts +0 -5
  253. package/dist/lib/hooks/executor.test.d.ts.map +0 -1
  254. package/dist/lib/hooks/executor.test.js +0 -648
  255. package/dist/lib/hooks/executor.test.js.map +0 -1
  256. package/dist/lib/hooks/templates.test.d.ts +0 -5
  257. package/dist/lib/hooks/templates.test.d.ts.map +0 -1
  258. package/dist/lib/hooks/templates.test.js +0 -163
  259. package/dist/lib/hooks/templates.test.js.map +0 -1
  260. package/dist/lib/hooks/types.test.d.ts +0 -5
  261. package/dist/lib/hooks/types.test.d.ts.map +0 -1
  262. package/dist/lib/hooks/types.test.js +0 -132
  263. package/dist/lib/hooks/types.test.js.map +0 -1
  264. package/dist/lib/json-output.test.d.ts +0 -5
  265. package/dist/lib/json-output.test.d.ts.map +0 -1
  266. package/dist/lib/json-output.test.js +0 -261
  267. package/dist/lib/json-output.test.js.map +0 -1
  268. package/dist/lib/logger.test.d.ts +0 -14
  269. package/dist/lib/logger.test.d.ts.map +0 -1
  270. package/dist/lib/logger.test.js +0 -692
  271. package/dist/lib/logger.test.js.map +0 -1
  272. package/dist/lib/lswt/action-executors.test.d.ts +0 -2
  273. package/dist/lib/lswt/action-executors.test.d.ts.map +0 -1
  274. package/dist/lib/lswt/action-executors.test.js +0 -1127
  275. package/dist/lib/lswt/action-executors.test.js.map +0 -1
  276. package/dist/lib/lswt/actions.test.d.ts +0 -2
  277. package/dist/lib/lswt/actions.test.d.ts.map +0 -1
  278. package/dist/lib/lswt/actions.test.js +0 -497
  279. package/dist/lib/lswt/actions.test.js.map +0 -1
  280. package/dist/lib/lswt/args.test.d.ts +0 -2
  281. package/dist/lib/lswt/args.test.d.ts.map +0 -1
  282. package/dist/lib/lswt/args.test.js +0 -195
  283. package/dist/lib/lswt/args.test.js.map +0 -1
  284. package/dist/lib/lswt/environment.test.d.ts +0 -2
  285. package/dist/lib/lswt/environment.test.d.ts.map +0 -1
  286. package/dist/lib/lswt/environment.test.js +0 -544
  287. package/dist/lib/lswt/environment.test.js.map +0 -1
  288. package/dist/lib/lswt/formatters.test.d.ts +0 -2
  289. package/dist/lib/lswt/formatters.test.d.ts.map +0 -1
  290. package/dist/lib/lswt/formatters.test.js +0 -323
  291. package/dist/lib/lswt/formatters.test.js.map +0 -1
  292. package/dist/lib/lswt/fuzzy-search.test.d.ts +0 -5
  293. package/dist/lib/lswt/fuzzy-search.test.d.ts.map +0 -1
  294. package/dist/lib/lswt/fuzzy-search.test.js +0 -207
  295. package/dist/lib/lswt/fuzzy-search.test.js.map +0 -1
  296. package/dist/lib/lswt/interactive.test.d.ts +0 -2
  297. package/dist/lib/lswt/interactive.test.d.ts.map +0 -1
  298. package/dist/lib/lswt/interactive.test.js +0 -771
  299. package/dist/lib/lswt/interactive.test.js.map +0 -1
  300. package/dist/lib/lswt/table.test.d.ts +0 -5
  301. package/dist/lib/lswt/table.test.d.ts.map +0 -1
  302. package/dist/lib/lswt/table.test.js +0 -262
  303. package/dist/lib/lswt/table.test.js.map +0 -1
  304. package/dist/lib/lswt/worktree-info.test.d.ts +0 -2
  305. package/dist/lib/lswt/worktree-info.test.d.ts.map +0 -1
  306. package/dist/lib/lswt/worktree-info.test.js +0 -484
  307. package/dist/lib/lswt/worktree-info.test.js.map +0 -1
  308. package/dist/lib/newpr/action-deps.test.d.ts +0 -5
  309. package/dist/lib/newpr/action-deps.test.d.ts.map +0 -1
  310. package/dist/lib/newpr/action-deps.test.js +0 -111
  311. package/dist/lib/newpr/action-deps.test.js.map +0 -1
  312. package/dist/lib/newpr/actions.test.d.ts +0 -2
  313. package/dist/lib/newpr/actions.test.d.ts.map +0 -1
  314. package/dist/lib/newpr/actions.test.js +0 -254
  315. package/dist/lib/newpr/actions.test.js.map +0 -1
  316. package/dist/lib/newpr/args.test.d.ts +0 -2
  317. package/dist/lib/newpr/args.test.d.ts.map +0 -1
  318. package/dist/lib/newpr/args.test.js +0 -479
  319. package/dist/lib/newpr/args.test.js.map +0 -1
  320. package/dist/lib/newpr/hook-runner.test.d.ts +0 -7
  321. package/dist/lib/newpr/hook-runner.test.d.ts.map +0 -1
  322. package/dist/lib/newpr/hook-runner.test.js +0 -422
  323. package/dist/lib/newpr/hook-runner.test.js.map +0 -1
  324. package/dist/lib/newpr/plan-generator.test.d.ts +0 -7
  325. package/dist/lib/newpr/plan-generator.test.d.ts.map +0 -1
  326. package/dist/lib/newpr/plan-generator.test.js +0 -387
  327. package/dist/lib/newpr/plan-generator.test.js.map +0 -1
  328. package/dist/lib/newpr/scenario-handler.test.d.ts +0 -2
  329. package/dist/lib/newpr/scenario-handler.test.d.ts.map +0 -1
  330. package/dist/lib/newpr/scenario-handler.test.js +0 -256
  331. package/dist/lib/newpr/scenario-handler.test.js.map +0 -1
  332. package/dist/lib/prompts.test.d.ts +0 -2
  333. package/dist/lib/prompts.test.d.ts.map +0 -1
  334. package/dist/lib/prompts.test.js +0 -807
  335. package/dist/lib/prompts.test.js.map +0 -1
  336. package/dist/lib/prs/actions.test.d.ts +0 -5
  337. package/dist/lib/prs/actions.test.d.ts.map +0 -1
  338. package/dist/lib/prs/actions.test.js +0 -356
  339. package/dist/lib/prs/actions.test.js.map +0 -1
  340. package/dist/lib/prs/command.test.d.ts +0 -11
  341. package/dist/lib/prs/command.test.d.ts.map +0 -1
  342. package/dist/lib/prs/command.test.js +0 -409
  343. package/dist/lib/prs/command.test.js.map +0 -1
  344. package/dist/lib/prs/data.test.d.ts +0 -5
  345. package/dist/lib/prs/data.test.d.ts.map +0 -1
  346. package/dist/lib/prs/data.test.js +0 -417
  347. package/dist/lib/prs/data.test.js.map +0 -1
  348. package/dist/lib/prs/details.test.d.ts +0 -5
  349. package/dist/lib/prs/details.test.d.ts.map +0 -1
  350. package/dist/lib/prs/details.test.js +0 -325
  351. package/dist/lib/prs/details.test.js.map +0 -1
  352. package/dist/lib/prs/filters.test.d.ts +0 -5
  353. package/dist/lib/prs/filters.test.d.ts.map +0 -1
  354. package/dist/lib/prs/filters.test.js +0 -312
  355. package/dist/lib/prs/filters.test.js.map +0 -1
  356. package/dist/lib/prs/formatters.test.d.ts +0 -2
  357. package/dist/lib/prs/formatters.test.d.ts.map +0 -1
  358. package/dist/lib/prs/formatters.test.js +0 -387
  359. package/dist/lib/prs/formatters.test.js.map +0 -1
  360. package/dist/lib/prs/interactive.test.d.ts +0 -5
  361. package/dist/lib/prs/interactive.test.d.ts.map +0 -1
  362. package/dist/lib/prs/interactive.test.js +0 -517
  363. package/dist/lib/prs/interactive.test.js.map +0 -1
  364. package/dist/lib/schema.test.d.ts +0 -10
  365. package/dist/lib/schema.test.d.ts.map +0 -1
  366. package/dist/lib/schema.test.js +0 -309
  367. package/dist/lib/schema.test.js.map +0 -1
  368. package/dist/lib/state-detection.test.d.ts +0 -2
  369. package/dist/lib/state-detection.test.d.ts.map +0 -1
  370. package/dist/lib/state-detection.test.js +0 -451
  371. package/dist/lib/state-detection.test.js.map +0 -1
  372. package/dist/lib/ui/error.test.d.ts +0 -2
  373. package/dist/lib/ui/error.test.d.ts.map +0 -1
  374. package/dist/lib/ui/error.test.js +0 -143
  375. package/dist/lib/ui/error.test.js.map +0 -1
  376. package/dist/lib/ui/output.test.d.ts +0 -2
  377. package/dist/lib/ui/output.test.d.ts.map +0 -1
  378. package/dist/lib/ui/output.test.js +0 -59
  379. package/dist/lib/ui/output.test.js.map +0 -1
  380. package/dist/lib/ui/status.test.d.ts +0 -2
  381. package/dist/lib/ui/status.test.d.ts.map +0 -1
  382. package/dist/lib/ui/status.test.js +0 -158
  383. package/dist/lib/ui/status.test.js.map +0 -1
  384. package/dist/lib/ui/table.test.d.ts +0 -2
  385. package/dist/lib/ui/table.test.d.ts.map +0 -1
  386. package/dist/lib/ui/table.test.js +0 -115
  387. package/dist/lib/ui/table.test.js.map +0 -1
  388. package/dist/lib/ui/theme.test.d.ts +0 -2
  389. package/dist/lib/ui/theme.test.d.ts.map +0 -1
  390. package/dist/lib/ui/theme.test.js +0 -76
  391. package/dist/lib/ui/theme.test.js.map +0 -1
  392. package/dist/lib/wtconfig/config-manager.test.d.ts +0 -5
  393. package/dist/lib/wtconfig/config-manager.test.d.ts.map +0 -1
  394. package/dist/lib/wtconfig/config-manager.test.js +0 -501
  395. package/dist/lib/wtconfig/config-manager.test.js.map +0 -1
  396. package/dist/lib/wtconfig/environment.test.d.ts +0 -5
  397. package/dist/lib/wtconfig/environment.test.d.ts.map +0 -1
  398. package/dist/lib/wtconfig/environment.test.js +0 -285
  399. package/dist/lib/wtconfig/environment.test.js.map +0 -1
  400. package/dist/lib/wtlink/config-manifest.test.d.ts +0 -2
  401. package/dist/lib/wtlink/config-manifest.test.d.ts.map +0 -1
  402. package/dist/lib/wtlink/config-manifest.test.js +0 -486
  403. package/dist/lib/wtlink/config-manifest.test.js.map +0 -1
  404. package/dist/lib/wtlink/link-configs.test.d.ts +0 -2
  405. package/dist/lib/wtlink/link-configs.test.d.ts.map +0 -1
  406. package/dist/lib/wtlink/link-configs.test.js +0 -612
  407. package/dist/lib/wtlink/link-configs.test.js.map +0 -1
  408. package/dist/lib/wtlink/main-menu.test.d.ts +0 -5
  409. package/dist/lib/wtlink/main-menu.test.d.ts.map +0 -1
  410. package/dist/lib/wtlink/main-menu.test.js +0 -126
  411. package/dist/lib/wtlink/main-menu.test.js.map +0 -1
  412. package/dist/lib/wtlink/manage-manifest.test.d.ts +0 -2
  413. package/dist/lib/wtlink/manage-manifest.test.d.ts.map +0 -1
  414. package/dist/lib/wtlink/manage-manifest.test.js +0 -714
  415. package/dist/lib/wtlink/manage-manifest.test.js.map +0 -1
  416. package/dist/lib/wtlink/validate-manifest.test.d.ts +0 -2
  417. package/dist/lib/wtlink/validate-manifest.test.d.ts.map +0 -1
  418. package/dist/lib/wtlink/validate-manifest.test.js +0 -220
  419. package/dist/lib/wtlink/validate-manifest.test.js.map +0 -1
  420. package/dist/lib/wtstate/analyze.test.d.ts +0 -5
  421. package/dist/lib/wtstate/analyze.test.d.ts.map +0 -1
  422. package/dist/lib/wtstate/analyze.test.js +0 -282
  423. package/dist/lib/wtstate/analyze.test.js.map +0 -1
  424. package/dist/lib/wtstate/args.test.d.ts +0 -5
  425. package/dist/lib/wtstate/args.test.d.ts.map +0 -1
  426. package/dist/lib/wtstate/args.test.js +0 -120
  427. package/dist/lib/wtstate/args.test.js.map +0 -1
  428. package/dist/mcp/server.test.d.ts +0 -9
  429. package/dist/mcp/server.test.d.ts.map +0 -1
  430. package/dist/mcp/server.test.js +0 -550
  431. package/dist/mcp/server.test.js.map +0 -1
@@ -1,460 +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
- /**
10
- * Integration tests for newpr flow - specifically testing that uncommitted changes
11
- * are correctly transferred to new branches created from origin/main.
12
- *
13
- * These tests verify the ACTUAL git behavior, not just mocked dependencies.
14
- */
15
- describe('newpr integration - uncommitted changes transfer', () => {
16
- let tempDir;
17
- let mainRepoDir;
18
- let bareRepoDir;
19
- // Create temp directory structure with a bare repo to simulate origin
20
- beforeAll(() => {
21
- tempDir = fs.realpathSync.native(fs.mkdtempSync(path.join(os.tmpdir(), 'newpr-integration-test-')));
22
- // Create a bare repo to act as origin
23
- bareRepoDir = path.join(tempDir, 'origin.git');
24
- fs.mkdirSync(bareRepoDir);
25
- execSync('git init --bare', { cwd: bareRepoDir });
26
- // Create the main working repo
27
- mainRepoDir = path.join(tempDir, 'main-repo');
28
- fs.mkdirSync(mainRepoDir);
29
- execSync('git init', { cwd: mainRepoDir });
30
- execSync('git config user.email "test@test.com"', { cwd: mainRepoDir });
31
- execSync('git config user.name "Test User"', { cwd: mainRepoDir });
32
- // Create initial commit
33
- fs.writeFileSync(path.join(mainRepoDir, 'README.md'), '# Test Repo\n');
34
- execSync('git add .', { cwd: mainRepoDir });
35
- execSync('git commit -m "Initial commit"', { cwd: mainRepoDir });
36
- // Rename branch to 'main' for consistency
37
- execSync('git branch -M main', { cwd: mainRepoDir, stdio: 'ignore' });
38
- // Add origin and push
39
- execSync(`git remote add origin "${bareRepoDir}"`, { cwd: mainRepoDir });
40
- execSync('git push -u origin main', { cwd: mainRepoDir, stdio: 'ignore' });
41
- });
42
- afterAll(() => {
43
- if (tempDir) {
44
- fs.rmSync(tempDir, { recursive: true, force: true });
45
- }
46
- });
47
- beforeEach(() => {
48
- // Clean up any test branches first (before checkout to avoid errors)
49
- const branchesToClean = [
50
- 'test-feature',
51
- 'test-feature-staged',
52
- 'test-feature-both',
53
- 'test-feature-behind',
54
- 'test-feature-existing-file',
55
- 'test-feature-full-flow',
56
- 'test-feature-from-head',
57
- ];
58
- for (const branch of branchesToClean) {
59
- try {
60
- execSync(`git branch -D ${branch} 2>/dev/null`, {
61
- cwd: mainRepoDir,
62
- stdio: 'ignore',
63
- });
64
- }
65
- catch {
66
- // Ignore
67
- }
68
- }
69
- // Reset to clean state on main
70
- execSync('git checkout main', { cwd: mainRepoDir, stdio: 'ignore' });
71
- execSync('git reset --hard origin/main', { cwd: mainRepoDir, stdio: 'ignore' });
72
- execSync('git clean -fd', { cwd: mainRepoDir, stdio: 'ignore' });
73
- });
74
- /**
75
- * Create real ActionDeps using actual git operations
76
- */
77
- function createRealDeps(cwd) {
78
- return {
79
- gitAdd: (addPath, cwdPath) => git.add(addPath, cwdPath ?? cwd),
80
- gitStash: (options, cwdPath) => git.stash({ message: options.message, keepIndex: options.keepIndex }, cwdPath ?? cwd),
81
- gitPush: (options, cwdPath) => git.push({ remote: options.remote, branch: options.branch, setUpstream: options.setUpstream }, cwdPath ?? cwd),
82
- gitCommit: (options, cwdPath) => git.commit({ message: options.message, allowEmpty: options.allowEmpty }, cwdPath ?? cwd),
83
- };
84
- }
85
- /**
86
- * Helper to get the base branch name - we use 'main' in this test suite
87
- */
88
- function getBaseBranch() {
89
- return 'main';
90
- }
91
- describe('Scenario 2b: main_unstaged_same - unstaged changes on main', () => {
92
- it('detects scenario correctly', () => {
93
- const baseBranch = getBaseBranch();
94
- // Create an unstaged file (new, untracked)
95
- fs.mkdirSync(path.join(mainRepoDir, 'docs'), { recursive: true });
96
- fs.writeFileSync(path.join(mainRepoDir, 'docs', 'AI-TOOLING-PLAN.md'), '# Plan\n');
97
- const state = analyzeGitState(baseBranch, mainRepoDir);
98
- const scenario = detectScenario(state);
99
- expect(scenario).toBe('main_unstaged_same');
100
- // Git may report 'docs/' for untracked directories
101
- expect(state.unstagedFiles.some((f) => f.includes('docs'))).toBe(true);
102
- });
103
- it('commit_all action commits unstaged file to new branch from origin/main', () => {
104
- const baseBranch = getBaseBranch();
105
- const branchName = 'test-feature';
106
- // Create an unstaged file (simulating the user's scenario)
107
- fs.mkdirSync(path.join(mainRepoDir, 'docs'), { recursive: true });
108
- fs.writeFileSync(path.join(mainRepoDir, 'docs', 'AI-TOOLING-PLAN.md'), '# Plan\n');
109
- // Verify initial state
110
- const initialState = analyzeGitState(baseBranch, mainRepoDir);
111
- expect(detectScenario(initialState)).toBe('main_unstaged_same');
112
- // Create the action: "Stage all and commit to the new PR branch"
113
- const action = {
114
- action: 'commit_all',
115
- branchFrom: 'origin_main',
116
- stashUnstaged: false,
117
- };
118
- // Execute the action (this stages files)
119
- const deps = createRealDeps(mainRepoDir);
120
- const actionResult = executeStateAction(action, 'Test feature', branchName, deps, mainRepoDir);
121
- expect(actionResult.success).toBe(true);
122
- // Verify files are staged
123
- const stagedAfterAction = git.getStagedFiles(mainRepoDir);
124
- expect(stagedAfterAction).toContain('docs/AI-TOOLING-PLAN.md');
125
- // Create new branch from origin/main (this is what newpr.ts does)
126
- const branchPoint = getBranchPoint(action, baseBranch);
127
- expect(branchPoint).toBe(`origin/${baseBranch}`);
128
- git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
129
- // Verify staged files persist after checkout from origin/main.
130
- // When origin/main equals HEAD (same commit), git preserves the index.
131
- const stagedAfterCheckout = git.getStagedFiles(mainRepoDir);
132
- expect(stagedAfterCheckout).toContain('docs/AI-TOOLING-PLAN.md');
133
- // If staged files existed, commit them
134
- if (stagedAfterCheckout.length > 0) {
135
- git.commit({ message: 'feat: Test feature' }, mainRepoDir);
136
- }
137
- // Verify the file is in the commit history
138
- const log = execSync('git log --oneline -1', {
139
- cwd: mainRepoDir,
140
- encoding: 'utf8',
141
- });
142
- // This SHOULD contain our commit message, but with the bug it won't
143
- expect(log).toContain('Test feature');
144
- // Verify the file actually exists in the new branch
145
- expect(fs.existsSync(path.join(mainRepoDir, 'docs', 'AI-TOOLING-PLAN.md'))).toBe(true);
146
- });
147
- });
148
- describe('Scenario 2a: main_staged_same - staged changes on main', () => {
149
- it('commit_staged action commits staged file to new branch from origin/main', () => {
150
- const baseBranch = getBaseBranch();
151
- const branchName = 'test-feature-staged';
152
- // Create and stage a file
153
- fs.mkdirSync(path.join(mainRepoDir, 'src'), { recursive: true });
154
- fs.writeFileSync(path.join(mainRepoDir, 'src', 'feature.ts'), 'export const x = 1;\n');
155
- execSync('git add src/feature.ts', { cwd: mainRepoDir });
156
- // Verify initial state
157
- const initialState = analyzeGitState(baseBranch, mainRepoDir);
158
- expect(detectScenario(initialState)).toBe('main_staged_same');
159
- expect(initialState.stagedFiles).toContain('src/feature.ts');
160
- // Create the action: "Commit staged changes to the new PR branch"
161
- const action = {
162
- action: 'commit_staged',
163
- branchFrom: 'origin_main',
164
- stashUnstaged: false,
165
- };
166
- // Execute the action (this does nothing for commit_staged)
167
- const deps = createRealDeps(mainRepoDir);
168
- const actionResult = executeStateAction(action, 'Test feature staged', branchName, deps, mainRepoDir);
169
- expect(actionResult.success).toBe(true);
170
- // Verify files are staged before checkout
171
- const stagedBefore = git.getStagedFiles(mainRepoDir);
172
- expect(stagedBefore).toContain('src/feature.ts');
173
- // Create new branch from origin/main
174
- const branchPoint = getBranchPoint(action, baseBranch);
175
- git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
176
- // Verify staged files persist after checkout from origin/main.
177
- // When origin/main equals HEAD (same commit), git preserves the index.
178
- const stagedAfterCheckout = git.getStagedFiles(mainRepoDir);
179
- expect(stagedAfterCheckout).toContain('src/feature.ts');
180
- });
181
- });
182
- describe('Scenario 2c: main_both_same - both staged and unstaged changes', () => {
183
- it('commit_staged with stashUnstaged preserves staged and transfers unstaged', () => {
184
- const baseBranch = getBaseBranch();
185
- const branchName = 'test-feature-both';
186
- // Create staged file
187
- fs.mkdirSync(path.join(mainRepoDir, 'src'), { recursive: true });
188
- fs.writeFileSync(path.join(mainRepoDir, 'src', 'staged.ts'), 'export const staged = 1;\n');
189
- execSync('git add src/staged.ts', { cwd: mainRepoDir });
190
- // Create unstaged file
191
- fs.writeFileSync(path.join(mainRepoDir, 'src', 'unstaged.ts'), 'export const unstaged = 2;\n');
192
- // Verify initial state
193
- const initialState = analyzeGitState(baseBranch, mainRepoDir);
194
- expect(detectScenario(initialState)).toBe('main_both_same');
195
- expect(initialState.stagedFiles).toContain('src/staged.ts');
196
- expect(initialState.unstagedFiles).toContain('src/unstaged.ts');
197
- // Create the action: "Commit staged to PR branch, move unstaged to new worktree"
198
- const action = {
199
- action: 'commit_staged',
200
- branchFrom: 'origin_main',
201
- stashUnstaged: true,
202
- };
203
- // Execute the action
204
- const deps = createRealDeps(mainRepoDir);
205
- const actionResult = executeStateAction(action, 'Test feature both', branchName, deps, mainRepoDir);
206
- expect(actionResult.success).toBe(true);
207
- // Verify staged files are still staged before checkout
208
- const stagedBefore = git.getStagedFiles(mainRepoDir);
209
- expect(stagedBefore).toContain('src/staged.ts');
210
- // Create new branch from origin/main
211
- const branchPoint = getBranchPoint(action, baseBranch);
212
- git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
213
- // Verify staged files persist after checkout from origin/main.
214
- // When origin/main equals HEAD (same commit), git preserves the index.
215
- const stagedAfterCheckout = git.getStagedFiles(mainRepoDir);
216
- expect(stagedAfterCheckout).toContain('src/staged.ts');
217
- });
218
- });
219
- describe('Scenario: main branch BEHIND origin/main (ancestor relationship)', () => {
220
- it('commit_all when local main is behind origin/main preserves staged files', () => {
221
- const baseBranch = getBaseBranch();
222
- const branchName = 'test-feature-behind';
223
- // Simulate origin/main being ahead by adding a commit to the bare repo
224
- // Create a temporary clone, add a commit, push
225
- const tempClone = path.join(tempDir, 'temp-clone');
226
- execSync(`git clone "${bareRepoDir}" "${tempClone}"`, { stdio: 'ignore' });
227
- execSync('git config user.email "test@test.com"', { cwd: tempClone });
228
- execSync('git config user.name "Test User"', { cwd: tempClone });
229
- // Checkout origin/main to properly track (clone warning about nonexistent ref)
230
- execSync('git checkout -B main origin/main', { cwd: tempClone, stdio: 'ignore' });
231
- fs.writeFileSync(path.join(tempClone, 'upstream-change.txt'), 'upstream change\n');
232
- execSync('git add .', { cwd: tempClone });
233
- execSync('git commit -m "Upstream change"', { cwd: tempClone });
234
- execSync('git push origin main', { cwd: tempClone, stdio: 'ignore' });
235
- fs.rmSync(tempClone, { recursive: true, force: true });
236
- // Fetch in main repo to get the new origin/main
237
- execSync('git fetch origin', { cwd: mainRepoDir, stdio: 'ignore' });
238
- // Now local main is BEHIND origin/main
239
- const behindCheck = execSync('git rev-list HEAD..origin/main --count', {
240
- cwd: mainRepoDir,
241
- encoding: 'utf8',
242
- }).trim();
243
- expect(parseInt(behindCheck)).toBeGreaterThan(0);
244
- // Create an unstaged file (simulating the user's scenario)
245
- const docsDir = path.join(mainRepoDir, 'docs');
246
- const planFile = path.join(docsDir, 'AI-TOOLING-PLAN.md');
247
- fs.mkdirSync(docsDir, { recursive: true });
248
- fs.writeFileSync(planFile, '# Plan\n');
249
- // Debug: verify file exists
250
- expect(fs.existsSync(planFile)).toBe(true);
251
- // Verify initial state
252
- const initialState = analyzeGitState(baseBranch, mainRepoDir);
253
- // The relationship is 'ancestor' (HEAD is an ancestor of origin/main)
254
- // which semantically means "behind" - local main is behind origin/main
255
- expect(initialState.commitRelationship).toBe('ancestor');
256
- expect(initialState.workingTreeStatus).toBe('unstaged_only');
257
- // After fix: detectScenario now handles 'ancestor' for main branch
258
- expect(detectScenario(initialState)).toBe('main_unstaged_same');
259
- // Create the action: "Stage all and commit to the new PR branch"
260
- const action = {
261
- action: 'commit_all',
262
- branchFrom: 'origin_main',
263
- stashUnstaged: false,
264
- };
265
- // Execute the action (this stages files)
266
- const deps = createRealDeps(mainRepoDir);
267
- const actionResult = executeStateAction(action, 'Test feature', branchName, deps, mainRepoDir);
268
- expect(actionResult.success).toBe(true);
269
- // Verify files are staged
270
- const stagedAfterAction = git.getStagedFiles(mainRepoDir);
271
- expect(stagedAfterAction).toContain('docs/AI-TOOLING-PLAN.md');
272
- // Create new branch from origin/main (this is what newpr.ts does)
273
- const branchPoint = getBranchPoint(action, baseBranch);
274
- expect(branchPoint).toBe(`origin/${baseBranch}`);
275
- git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
276
- // Verify staged files persist after checkout from origin/main.
277
- // For NEW files that don't exist in origin/main, git preserves them
278
- // in the index even when the checkout updates the working tree.
279
- const stagedAfterCheckout = git.getStagedFiles(mainRepoDir);
280
- expect(stagedAfterCheckout).toContain('docs/AI-TOOLING-PLAN.md');
281
- });
282
- });
283
- describe('Edge case: modifying EXISTING file when behind origin/main', () => {
284
- it('git refuses checkout when staged changes conflict with upstream', () => {
285
- const baseBranch = getBaseBranch();
286
- const branchName = 'test-feature-existing-file';
287
- // Simulate origin/main being ahead by adding a commit to the bare repo
288
- const tempClone = path.join(tempDir, 'temp-clone-2');
289
- execSync(`git clone "${bareRepoDir}" "${tempClone}"`, { stdio: 'ignore' });
290
- execSync('git config user.email "test@test.com"', { cwd: tempClone });
291
- execSync('git config user.name "Test User"', { cwd: tempClone });
292
- execSync('git checkout -B main origin/main', { cwd: tempClone, stdio: 'ignore' });
293
- // Modify the README (which exists in both local and origin)
294
- fs.appendFileSync(path.join(tempClone, 'README.md'), '\n## Upstream changes\n');
295
- execSync('git add .', { cwd: tempClone });
296
- execSync('git commit -m "Upstream README change"', { cwd: tempClone });
297
- execSync('git push origin main', { cwd: tempClone, stdio: 'ignore' });
298
- fs.rmSync(tempClone, { recursive: true, force: true });
299
- // Fetch in main repo to get the new origin/main
300
- execSync('git fetch origin', { cwd: mainRepoDir, stdio: 'ignore' });
301
- // Verify local main is behind
302
- const behindCheck = execSync('git rev-list HEAD..origin/main --count', {
303
- cwd: mainRepoDir,
304
- encoding: 'utf8',
305
- }).trim();
306
- expect(parseInt(behindCheck)).toBeGreaterThan(0);
307
- // Modify README.md locally (an existing file that also changed in origin)
308
- // This simulates the user making changes to a file that has upstream changes
309
- fs.appendFileSync(path.join(mainRepoDir, 'README.md'), '\n## Local changes\n');
310
- // Stage the change
311
- execSync('git add README.md', { cwd: mainRepoDir });
312
- // Verify it's staged
313
- const stagedBefore = git.getStagedFiles(mainRepoDir);
314
- expect(stagedBefore).toContain('README.md');
315
- // Create the action
316
- const action = {
317
- action: 'commit_staged',
318
- branchFrom: 'origin_main',
319
- stashUnstaged: false,
320
- };
321
- // Execute the action (nothing to do for commit_staged)
322
- const deps = createRealDeps(mainRepoDir);
323
- const actionResult = executeStateAction(action, 'Test feature', branchName, deps, mainRepoDir);
324
- expect(actionResult.success).toBe(true);
325
- // Now checkout from origin/main
326
- const branchPoint = getBranchPoint(action, baseBranch);
327
- // This should fail because there's a conflict between local staged changes
328
- // and upstream changes to the same file
329
- let checkoutError = null;
330
- try {
331
- git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
332
- }
333
- catch (e) {
334
- checkoutError = e;
335
- }
336
- // Git will either:
337
- // 1. Refuse the checkout (conflict) - checkoutError is set
338
- // 2. Preserve staged changes - stagedAfterCheckout contains README.md
339
- if (checkoutError) {
340
- // Git refused the checkout due to conflicting changes - this is expected.
341
- // When a file has both local staged changes AND upstream changes,
342
- // git protects the user by refusing the checkout.
343
- console.log('Git refused checkout due to conflict (expected behavior)');
344
- expect(checkoutError.message).toContain('overwritten');
345
- }
346
- else {
347
- // Git allowed checkout - verify staged changes are preserved.
348
- // This branch handles the case where git finds a way to merge cleanly.
349
- const stagedAfterCheckout = git.getStagedFiles(mainRepoDir);
350
- expect(stagedAfterCheckout).toContain('README.md');
351
- }
352
- });
353
- });
354
- describe('Full flow: file ends up in worktree, not main', () => {
355
- it('uncommitted file is committed to branch and available in worktree', () => {
356
- const baseBranch = getBaseBranch();
357
- const branchName = 'test-feature-full-flow';
358
- // Create an unstaged file
359
- fs.mkdirSync(path.join(mainRepoDir, 'docs'), { recursive: true });
360
- const testFile = path.join(mainRepoDir, 'docs', 'AI-TOOLING-PLAN.md');
361
- fs.writeFileSync(testFile, '# Plan\n');
362
- // Stage files (what executeStateAction does for commit_all)
363
- git.add('.', mainRepoDir);
364
- // Verify staged
365
- expect(git.getStagedFiles(mainRepoDir)).toContain('docs/AI-TOOLING-PLAN.md');
366
- // Create new branch from origin/main
367
- git.exec(['checkout', '-b', branchName, `origin/${baseBranch}`], { cwd: mainRepoDir });
368
- // Verify still staged after checkout
369
- expect(git.getStagedFiles(mainRepoDir)).toContain('docs/AI-TOOLING-PLAN.md');
370
- // Commit (what newpr does)
371
- git.commit({ message: 'feat: Test feature\n\n🤖 Created with newpr' }, mainRepoDir);
372
- // Verify file is committed (not staged anymore)
373
- expect(git.getStagedFiles(mainRepoDir)).not.toContain('docs/AI-TOOLING-PLAN.md');
374
- // Verify file exists in working tree
375
- expect(fs.existsSync(testFile)).toBe(true);
376
- // Go back to original branch (what newpr does)
377
- git.checkout(baseBranch, mainRepoDir);
378
- // KEY CHECK: File should NOT exist in main worktree after checkout back
379
- // because it was only committed to the feature branch
380
- expect(fs.existsSync(testFile)).toBe(false);
381
- // Create worktree (what newpr does)
382
- const worktreePath = path.join(tempDir, 'test-worktree');
383
- git.addWorktree(worktreePath, branchName, { cwd: mainRepoDir });
384
- // KEY CHECK: File SHOULD exist in the worktree
385
- const fileInWorktree = path.join(worktreePath, 'docs', 'AI-TOOLING-PLAN.md');
386
- expect(fs.existsSync(fileInWorktree)).toBe(true);
387
- // Clean up worktree
388
- git.removeWorktree(worktreePath, { cwd: mainRepoDir });
389
- });
390
- });
391
- describe('Contrast: branching from HEAD preserves staged files', () => {
392
- it('use_commits_and_commit_all from HEAD preserves staged files', () => {
393
- const baseBranch = getBaseBranch();
394
- const branchName = 'test-feature-from-head';
395
- // First create a local commit so we can branch from HEAD
396
- fs.writeFileSync(path.join(mainRepoDir, 'local-commit.txt'), 'local commit\n');
397
- execSync('git add local-commit.txt', { cwd: mainRepoDir });
398
- execSync('git commit -m "Local commit"', { cwd: mainRepoDir });
399
- // Now create an unstaged file
400
- fs.mkdirSync(path.join(mainRepoDir, 'docs'), { recursive: true });
401
- fs.writeFileSync(path.join(mainRepoDir, 'docs', 'new-file.md'), '# New\n');
402
- // Create the action: use commits and commit all (branches from HEAD)
403
- const action = {
404
- action: 'use_commits_and_commit_all',
405
- branchFrom: 'head',
406
- stashUnstaged: false,
407
- };
408
- // Execute the action (this stages files)
409
- const deps = createRealDeps(mainRepoDir);
410
- executeStateAction(action, 'Test from head', branchName, deps, mainRepoDir);
411
- // Verify files are staged
412
- const stagedAfterAction = git.getStagedFiles(mainRepoDir);
413
- expect(stagedAfterAction).toContain('docs/new-file.md');
414
- // Create new branch from HEAD
415
- const branchPoint = getBranchPoint(action, baseBranch);
416
- expect(branchPoint).toBe('HEAD');
417
- git.exec(['checkout', '-b', branchName, branchPoint], { cwd: mainRepoDir });
418
- // When branching from HEAD, staged files ARE preserved
419
- const stagedAfterCheckout = git.getStagedFiles(mainRepoDir);
420
- expect(stagedAfterCheckout).toContain('docs/new-file.md');
421
- });
422
- });
423
- describe('Bug regression: commit_all from subdirectory', () => {
424
- it('stages files from entire repo even when cwd is a subdirectory', () => {
425
- const baseBranch = getBaseBranch();
426
- // Create file in docs/ (sibling directory)
427
- fs.mkdirSync(path.join(mainRepoDir, 'docs'), { recursive: true });
428
- fs.writeFileSync(path.join(mainRepoDir, 'docs', 'plan.md'), '# Plan\n');
429
- // Create src/ subdirectory (simulate running from here)
430
- const srcDir = path.join(mainRepoDir, 'src');
431
- fs.mkdirSync(srcDir, { recursive: true });
432
- // Verify initial state
433
- const initialState = analyzeGitState(baseBranch, mainRepoDir);
434
- expect(detectScenario(initialState)).toBe('main_unstaged_same');
435
- // Create the action
436
- const action = {
437
- action: 'commit_all',
438
- branchFrom: 'origin_main',
439
- stashUnstaged: false,
440
- };
441
- // KEY TEST: Even when creating deps with a subdirectory as cwd,
442
- // using the repo root ensures all files are staged.
443
- // This simulates the BUG (passing subdirectory as cwd):
444
- const brokenDeps = createRealDeps(srcDir);
445
- executeStateAction(action, 'Test feature', 'test-branch', brokenDeps, srcDir);
446
- // With the broken deps, only files in src/ would be staged - not docs/
447
- const stagedWithBrokenDeps = git.getStagedFiles(mainRepoDir);
448
- expect(stagedWithBrokenDeps).not.toContain('docs/plan.md'); // Bug demonstrates this fails
449
- // Reset for next test
450
- execSync('git reset HEAD', { cwd: mainRepoDir, stdio: 'ignore' });
451
- // This simulates the FIX (passing repo root as cwd):
452
- const fixedDeps = createRealDeps(mainRepoDir);
453
- executeStateAction(action, 'Test feature', 'test-branch', fixedDeps, mainRepoDir);
454
- // With the fixed deps, all files in the repo are staged
455
- const stagedWithFixedDeps = git.getStagedFiles(mainRepoDir);
456
- expect(stagedWithFixedDeps).toContain('docs/plan.md'); // Fix ensures this works
457
- });
458
- });
459
- });
460
- //# sourceMappingURL=newpr.integration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"newpr.integration.test.js","sourceRoot":"","sources":["../../src/integration/newpr.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Integration tests for standalone prs CLI command (src/cli/prs.ts)
3
- *
4
- * These tests verify the standalone prs command works correctly when called directly,
5
- * not through the `wt prs` subcommand.
6
- */
7
- export {};
8
- //# sourceMappingURL=prs.integration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prs.integration.test.d.ts","sourceRoot":"","sources":["../../src/integration/prs.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}