@camaradesuk/git-worktree-tools 1.9.0 → 1.11.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 (531) hide show
  1. package/README.md +52 -31
  2. package/dist/cli/cleanpr.js +74 -53
  3. package/dist/cli/cleanpr.js.map +1 -1
  4. package/dist/cli/lswt.js +32 -56
  5. package/dist/cli/lswt.js.map +1 -1
  6. package/dist/cli/newpr.d.ts +13 -1
  7. package/dist/cli/newpr.d.ts.map +1 -1
  8. package/dist/cli/newpr.js +159 -153
  9. package/dist/cli/newpr.js.map +1 -1
  10. package/dist/cli/prs.d.ts +3 -10
  11. package/dist/cli/prs.d.ts.map +1 -1
  12. package/dist/cli/prs.js +6 -168
  13. package/dist/cli/prs.js.map +1 -1
  14. package/dist/cli/wt/clean.d.ts +6 -2
  15. package/dist/cli/wt/clean.d.ts.map +1 -1
  16. package/dist/cli/wt/clean.js +401 -20
  17. package/dist/cli/wt/clean.js.map +1 -1
  18. package/dist/cli/wt/completion.d.ts +3 -0
  19. package/dist/cli/wt/completion.d.ts.map +1 -1
  20. package/dist/cli/wt/completion.js +80 -9
  21. package/dist/cli/wt/completion.js.map +1 -1
  22. package/dist/cli/wt/config.d.ts +3 -1
  23. package/dist/cli/wt/config.d.ts.map +1 -1
  24. package/dist/cli/wt/config.js +323 -32
  25. package/dist/cli/wt/config.js.map +1 -1
  26. package/dist/cli/wt/interactive-menu.d.ts +2 -0
  27. package/dist/cli/wt/interactive-menu.d.ts.map +1 -1
  28. package/dist/cli/wt/interactive-menu.js +346 -73
  29. package/dist/cli/wt/interactive-menu.js.map +1 -1
  30. package/dist/cli/wt/link.d.ts +3 -1
  31. package/dist/cli/wt/link.d.ts.map +1 -1
  32. package/dist/cli/wt/link.js +125 -38
  33. package/dist/cli/wt/link.js.map +1 -1
  34. package/dist/cli/wt/list.d.ts +4 -1
  35. package/dist/cli/wt/list.d.ts.map +1 -1
  36. package/dist/cli/wt/list.js +85 -16
  37. package/dist/cli/wt/list.js.map +1 -1
  38. package/dist/cli/wt/new.d.ts +8 -2
  39. package/dist/cli/wt/new.d.ts.map +1 -1
  40. package/dist/cli/wt/new.js +91 -46
  41. package/dist/cli/wt/new.js.map +1 -1
  42. package/dist/cli/wt/prs.d.ts +2 -1
  43. package/dist/cli/wt/prs.d.ts.map +1 -1
  44. package/dist/cli/wt/prs.js +3 -164
  45. package/dist/cli/wt/prs.js.map +1 -1
  46. package/dist/cli/wt/run-command.d.ts +4 -2
  47. package/dist/cli/wt/run-command.d.ts.map +1 -1
  48. package/dist/cli/wt/run-command.js +6 -4
  49. package/dist/cli/wt/run-command.js.map +1 -1
  50. package/dist/cli/wt/state.d.ts +3 -1
  51. package/dist/cli/wt/state.d.ts.map +1 -1
  52. package/dist/cli/wt/state.js +74 -10
  53. package/dist/cli/wt/state.js.map +1 -1
  54. package/dist/cli/wt.d.ts.map +1 -1
  55. package/dist/cli/wt.js +50 -36
  56. package/dist/cli/wt.js.map +1 -1
  57. package/dist/cli/wtconfig.js +99 -22
  58. package/dist/cli/wtconfig.js.map +1 -1
  59. package/dist/cli/wtlink.js +85 -61
  60. package/dist/cli/wtlink.js.map +1 -1
  61. package/dist/cli/wtstate.js +21 -2
  62. package/dist/cli/wtstate.js.map +1 -1
  63. package/dist/lib/cleanpr/args.d.ts.map +1 -1
  64. package/dist/lib/cleanpr/args.js +20 -0
  65. package/dist/lib/cleanpr/args.js.map +1 -1
  66. package/dist/lib/cleanpr/types.d.ts +6 -0
  67. package/dist/lib/cleanpr/types.d.ts.map +1 -1
  68. package/dist/lib/colors.d.ts +5 -0
  69. package/dist/lib/colors.d.ts.map +1 -1
  70. package/dist/lib/colors.js +13 -6
  71. package/dist/lib/colors.js.map +1 -1
  72. package/dist/lib/constants.d.ts +12 -4
  73. package/dist/lib/constants.d.ts.map +1 -1
  74. package/dist/lib/constants.js +24 -5
  75. package/dist/lib/constants.js.map +1 -1
  76. package/dist/lib/deprecation.d.ts +18 -0
  77. package/dist/lib/deprecation.d.ts.map +1 -0
  78. package/dist/lib/deprecation.js +28 -0
  79. package/dist/lib/deprecation.js.map +1 -0
  80. package/dist/lib/logger.d.ts +40 -155
  81. package/dist/lib/logger.d.ts.map +1 -1
  82. package/dist/lib/logger.js +349 -420
  83. package/dist/lib/logger.js.map +1 -1
  84. package/dist/lib/lswt/args.d.ts.map +1 -1
  85. package/dist/lib/lswt/args.js +15 -1
  86. package/dist/lib/lswt/args.js.map +1 -1
  87. package/dist/lib/lswt/index.d.ts +1 -0
  88. package/dist/lib/lswt/index.d.ts.map +1 -1
  89. package/dist/lib/lswt/index.js +2 -0
  90. package/dist/lib/lswt/index.js.map +1 -1
  91. package/dist/lib/lswt/table.d.ts +15 -0
  92. package/dist/lib/lswt/table.d.ts.map +1 -0
  93. package/dist/lib/lswt/table.js +61 -0
  94. package/dist/lib/lswt/table.js.map +1 -0
  95. package/dist/lib/lswt/types.d.ts +4 -0
  96. package/dist/lib/lswt/types.d.ts.map +1 -1
  97. package/dist/lib/newpr/args.d.ts.map +1 -1
  98. package/dist/lib/newpr/args.js +21 -0
  99. package/dist/lib/newpr/args.js.map +1 -1
  100. package/dist/lib/newpr/types.d.ts +6 -0
  101. package/dist/lib/newpr/types.d.ts.map +1 -1
  102. package/dist/lib/prs/command.d.ts +21 -0
  103. package/dist/lib/prs/command.d.ts.map +1 -0
  104. package/dist/lib/prs/command.js +175 -0
  105. package/dist/lib/prs/command.js.map +1 -0
  106. package/dist/lib/prs/interactive.d.ts.map +1 -1
  107. package/dist/lib/prs/interactive.js +15 -2
  108. package/dist/lib/prs/interactive.js.map +1 -1
  109. package/dist/lib/prs/types.d.ts +15 -0
  110. package/dist/lib/prs/types.d.ts.map +1 -1
  111. package/dist/lib/ui/error.d.ts +31 -0
  112. package/dist/lib/ui/error.d.ts.map +1 -0
  113. package/dist/lib/ui/error.js +47 -0
  114. package/dist/lib/ui/error.js.map +1 -0
  115. package/dist/lib/ui/index.d.ts +15 -0
  116. package/dist/lib/ui/index.d.ts.map +1 -0
  117. package/dist/lib/ui/index.js +19 -0
  118. package/dist/lib/ui/index.js.map +1 -0
  119. package/dist/lib/ui/output.d.ts +18 -0
  120. package/dist/lib/ui/output.d.ts.map +1 -0
  121. package/dist/lib/ui/output.js +31 -0
  122. package/dist/lib/ui/output.js.map +1 -0
  123. package/dist/lib/ui/spinner.d.ts +10 -0
  124. package/dist/lib/ui/spinner.d.ts.map +1 -0
  125. package/dist/lib/ui/spinner.js +10 -0
  126. package/dist/lib/ui/spinner.js.map +1 -0
  127. package/dist/lib/ui/status.d.ts +65 -0
  128. package/dist/lib/ui/status.d.ts.map +1 -0
  129. package/dist/lib/ui/status.js +100 -0
  130. package/dist/lib/ui/status.js.map +1 -0
  131. package/dist/lib/ui/table.d.ts +39 -0
  132. package/dist/lib/ui/table.d.ts.map +1 -0
  133. package/dist/lib/ui/table.js +45 -0
  134. package/dist/lib/ui/table.js.map +1 -0
  135. package/dist/lib/ui/theme.d.ts +34 -0
  136. package/dist/lib/ui/theme.d.ts.map +1 -0
  137. package/dist/lib/ui/theme.js +37 -0
  138. package/dist/lib/ui/theme.js.map +1 -0
  139. package/dist/lib/wtlink/link-configs.js +7 -7
  140. package/dist/lib/wtlink/link-configs.js.map +1 -1
  141. package/dist/lib/wtlink/validate-manifest.d.ts.map +1 -1
  142. package/dist/lib/wtlink/validate-manifest.js +5 -5
  143. package/dist/lib/wtlink/validate-manifest.js.map +1 -1
  144. package/dist/lib/wtstate/args.d.ts.map +1 -1
  145. package/dist/lib/wtstate/args.js +2 -0
  146. package/dist/lib/wtstate/args.js.map +1 -1
  147. package/dist/mcp/server.d.ts +2 -1
  148. package/dist/mcp/server.d.ts.map +1 -1
  149. package/dist/mcp/server.js +264 -44
  150. package/dist/mcp/server.js.map +1 -1
  151. package/package.json +13 -3
  152. package/dist/api/list.test.d.ts +0 -5
  153. package/dist/api/list.test.d.ts.map +0 -1
  154. package/dist/api/list.test.js +0 -390
  155. package/dist/api/list.test.js.map +0 -1
  156. package/dist/cli/cleanpr.test.d.ts +0 -2
  157. package/dist/cli/cleanpr.test.d.ts.map +0 -1
  158. package/dist/cli/cleanpr.test.js +0 -954
  159. package/dist/cli/cleanpr.test.js.map +0 -1
  160. package/dist/cli/lswt.test.d.ts +0 -2
  161. package/dist/cli/lswt.test.d.ts.map +0 -1
  162. package/dist/cli/lswt.test.js +0 -386
  163. package/dist/cli/lswt.test.js.map +0 -1
  164. package/dist/cli/newpr.test.d.ts +0 -2
  165. package/dist/cli/newpr.test.d.ts.map +0 -1
  166. package/dist/cli/newpr.test.js +0 -1182
  167. package/dist/cli/newpr.test.js.map +0 -1
  168. package/dist/cli/prs.test.d.ts +0 -8
  169. package/dist/cli/prs.test.d.ts.map +0 -1
  170. package/dist/cli/prs.test.js +0 -410
  171. package/dist/cli/prs.test.js.map +0 -1
  172. package/dist/cli/wt/completion.test.d.ts +0 -5
  173. package/dist/cli/wt/completion.test.d.ts.map +0 -1
  174. package/dist/cli/wt/completion.test.js +0 -173
  175. package/dist/cli/wt/completion.test.js.map +0 -1
  176. package/dist/cli/wt/config.test.d.ts +0 -5
  177. package/dist/cli/wt/config.test.d.ts.map +0 -1
  178. package/dist/cli/wt/config.test.js +0 -260
  179. package/dist/cli/wt/config.test.js.map +0 -1
  180. package/dist/cli/wt/entry.test.d.ts +0 -8
  181. package/dist/cli/wt/entry.test.d.ts.map +0 -1
  182. package/dist/cli/wt/entry.test.js +0 -201
  183. package/dist/cli/wt/entry.test.js.map +0 -1
  184. package/dist/cli/wt/init.test.d.ts +0 -5
  185. package/dist/cli/wt/init.test.d.ts.map +0 -1
  186. package/dist/cli/wt/init.test.js +0 -165
  187. package/dist/cli/wt/init.test.js.map +0 -1
  188. package/dist/cli/wt/init.unit.test.d.ts +0 -5
  189. package/dist/cli/wt/init.unit.test.d.ts.map +0 -1
  190. package/dist/cli/wt/init.unit.test.js +0 -432
  191. package/dist/cli/wt/init.unit.test.js.map +0 -1
  192. package/dist/cli/wt/interactive-menu.test.d.ts +0 -10
  193. package/dist/cli/wt/interactive-menu.test.d.ts.map +0 -1
  194. package/dist/cli/wt/interactive-menu.test.js +0 -739
  195. package/dist/cli/wt/interactive-menu.test.js.map +0 -1
  196. package/dist/cli/wt/prs.test.d.ts +0 -5
  197. package/dist/cli/wt/prs.test.d.ts.map +0 -1
  198. package/dist/cli/wt/prs.test.js +0 -410
  199. package/dist/cli/wt/prs.test.js.map +0 -1
  200. package/dist/cli/wt/run-command.test.d.ts +0 -5
  201. package/dist/cli/wt/run-command.test.d.ts.map +0 -1
  202. package/dist/cli/wt/run-command.test.js +0 -88
  203. package/dist/cli/wt/run-command.test.js.map +0 -1
  204. package/dist/cli/wt/wt.test.d.ts +0 -8
  205. package/dist/cli/wt/wt.test.d.ts.map +0 -1
  206. package/dist/cli/wt/wt.test.js +0 -521
  207. package/dist/cli/wt/wt.test.js.map +0 -1
  208. package/dist/cli/wt.unit.test.d.ts +0 -7
  209. package/dist/cli/wt.unit.test.d.ts.map +0 -1
  210. package/dist/cli/wt.unit.test.js +0 -182
  211. package/dist/cli/wt.unit.test.js.map +0 -1
  212. package/dist/cli/wtconfig.test.d.ts +0 -5
  213. package/dist/cli/wtconfig.test.d.ts.map +0 -1
  214. package/dist/cli/wtconfig.test.js +0 -1289
  215. package/dist/cli/wtconfig.test.js.map +0 -1
  216. package/dist/cli/wtlink.test.d.ts +0 -2
  217. package/dist/cli/wtlink.test.d.ts.map +0 -1
  218. package/dist/cli/wtlink.test.js +0 -249
  219. package/dist/cli/wtlink.test.js.map +0 -1
  220. package/dist/cli/wtstate.test.d.ts +0 -5
  221. package/dist/cli/wtstate.test.d.ts.map +0 -1
  222. package/dist/cli/wtstate.test.js +0 -193
  223. package/dist/cli/wtstate.test.js.map +0 -1
  224. package/dist/e2e/cleanpr/cleanpr.e2e.test.d.ts +0 -2
  225. package/dist/e2e/cleanpr/cleanpr.e2e.test.d.ts.map +0 -1
  226. package/dist/e2e/cleanpr/cleanpr.e2e.test.js +0 -326
  227. package/dist/e2e/cleanpr/cleanpr.e2e.test.js.map +0 -1
  228. package/dist/e2e/cli.e2e.test.d.ts +0 -2
  229. package/dist/e2e/cli.e2e.test.d.ts.map +0 -1
  230. package/dist/e2e/cli.e2e.test.js +0 -417
  231. package/dist/e2e/cli.e2e.test.js.map +0 -1
  232. package/dist/e2e/lswt/lswt.e2e.test.d.ts +0 -2
  233. package/dist/e2e/lswt/lswt.e2e.test.d.ts.map +0 -1
  234. package/dist/e2e/lswt/lswt.e2e.test.js +0 -361
  235. package/dist/e2e/lswt/lswt.e2e.test.js.map +0 -1
  236. package/dist/e2e/newpr/newpr.e2e.test.d.ts +0 -2
  237. package/dist/e2e/newpr/newpr.e2e.test.d.ts.map +0 -1
  238. package/dist/e2e/newpr/newpr.e2e.test.js +0 -286
  239. package/dist/e2e/newpr/newpr.e2e.test.js.map +0 -1
  240. package/dist/e2e/newpr/scenarios.e2e.test.d.ts +0 -2
  241. package/dist/e2e/newpr/scenarios.e2e.test.d.ts.map +0 -1
  242. package/dist/e2e/newpr/scenarios.e2e.test.js +0 -426
  243. package/dist/e2e/newpr/scenarios.e2e.test.js.map +0 -1
  244. package/dist/e2e/newpr-full-flow.e2e.test.d.ts +0 -2
  245. package/dist/e2e/newpr-full-flow.e2e.test.d.ts.map +0 -1
  246. package/dist/e2e/newpr-full-flow.e2e.test.js +0 -280
  247. package/dist/e2e/newpr-full-flow.e2e.test.js.map +0 -1
  248. package/dist/e2e/prs/prs.e2e.test.d.ts +0 -7
  249. package/dist/e2e/prs/prs.e2e.test.d.ts.map +0 -1
  250. package/dist/e2e/prs/prs.e2e.test.js +0 -606
  251. package/dist/e2e/prs/prs.e2e.test.js.map +0 -1
  252. package/dist/e2e/workflows/pr-lifecycle.e2e.test.d.ts +0 -2
  253. package/dist/e2e/workflows/pr-lifecycle.e2e.test.d.ts.map +0 -1
  254. package/dist/e2e/workflows/pr-lifecycle.e2e.test.js +0 -298
  255. package/dist/e2e/workflows/pr-lifecycle.e2e.test.js.map +0 -1
  256. package/dist/e2e/wt/interactive-menu.e2e.test.d.ts +0 -8
  257. package/dist/e2e/wt/interactive-menu.e2e.test.d.ts.map +0 -1
  258. package/dist/e2e/wt/interactive-menu.e2e.test.js +0 -583
  259. package/dist/e2e/wt/interactive-menu.e2e.test.js.map +0 -1
  260. package/dist/e2e/wt/wt.e2e.test.d.ts +0 -9
  261. package/dist/e2e/wt/wt.e2e.test.d.ts.map +0 -1
  262. package/dist/e2e/wt/wt.e2e.test.js +0 -597
  263. package/dist/e2e/wt/wt.e2e.test.js.map +0 -1
  264. package/dist/e2e/wtlink/wtlink.e2e.test.d.ts +0 -2
  265. package/dist/e2e/wtlink/wtlink.e2e.test.d.ts.map +0 -1
  266. package/dist/e2e/wtlink/wtlink.e2e.test.js +0 -416
  267. package/dist/e2e/wtlink/wtlink.e2e.test.js.map +0 -1
  268. package/dist/integration/git.integration.test.d.ts +0 -2
  269. package/dist/integration/git.integration.test.d.ts.map +0 -1
  270. package/dist/integration/git.integration.test.js +0 -336
  271. package/dist/integration/git.integration.test.js.map +0 -1
  272. package/dist/integration/lswt-remote-pr.integration.test.d.ts +0 -2
  273. package/dist/integration/lswt-remote-pr.integration.test.d.ts.map +0 -1
  274. package/dist/integration/lswt-remote-pr.integration.test.js +0 -222
  275. package/dist/integration/lswt-remote-pr.integration.test.js.map +0 -1
  276. package/dist/integration/newpr-branchfrom-head.integration.test.d.ts +0 -2
  277. package/dist/integration/newpr-branchfrom-head.integration.test.d.ts.map +0 -1
  278. package/dist/integration/newpr-branchfrom-head.integration.test.js +0 -498
  279. package/dist/integration/newpr-branchfrom-head.integration.test.js.map +0 -1
  280. package/dist/integration/newpr.integration.test.d.ts +0 -2
  281. package/dist/integration/newpr.integration.test.d.ts.map +0 -1
  282. package/dist/integration/newpr.integration.test.js +0 -460
  283. package/dist/integration/newpr.integration.test.js.map +0 -1
  284. package/dist/integration/prs.integration.test.d.ts +0 -8
  285. package/dist/integration/prs.integration.test.d.ts.map +0 -1
  286. package/dist/integration/prs.integration.test.js +0 -478
  287. package/dist/integration/prs.integration.test.js.map +0 -1
  288. package/dist/lib/ai/base-provider.test.d.ts +0 -7
  289. package/dist/lib/ai/base-provider.test.d.ts.map +0 -1
  290. package/dist/lib/ai/base-provider.test.js +0 -319
  291. package/dist/lib/ai/base-provider.test.js.map +0 -1
  292. package/dist/lib/ai/cli-provider.test.d.ts +0 -5
  293. package/dist/lib/ai/cli-provider.test.d.ts.map +0 -1
  294. package/dist/lib/ai/cli-provider.test.js +0 -460
  295. package/dist/lib/ai/cli-provider.test.js.map +0 -1
  296. package/dist/lib/ai/fallback-provider.test.d.ts +0 -7
  297. package/dist/lib/ai/fallback-provider.test.d.ts.map +0 -1
  298. package/dist/lib/ai/fallback-provider.test.js +0 -165
  299. package/dist/lib/ai/fallback-provider.test.js.map +0 -1
  300. package/dist/lib/ai/generation-service.test.d.ts +0 -7
  301. package/dist/lib/ai/generation-service.test.d.ts.map +0 -1
  302. package/dist/lib/ai/generation-service.test.js +0 -213
  303. package/dist/lib/ai/generation-service.test.js.map +0 -1
  304. package/dist/lib/ai/provider-manager.test.d.ts +0 -5
  305. package/dist/lib/ai/provider-manager.test.d.ts.map +0 -1
  306. package/dist/lib/ai/provider-manager.test.js +0 -312
  307. package/dist/lib/ai/provider-manager.test.js.map +0 -1
  308. package/dist/lib/ai/repo-docs.test.d.ts +0 -5
  309. package/dist/lib/ai/repo-docs.test.d.ts.map +0 -1
  310. package/dist/lib/ai/repo-docs.test.js +0 -357
  311. package/dist/lib/ai/repo-docs.test.js.map +0 -1
  312. package/dist/lib/cleanpr/args.test.d.ts +0 -2
  313. package/dist/lib/cleanpr/args.test.d.ts.map +0 -1
  314. package/dist/lib/cleanpr/args.test.js +0 -269
  315. package/dist/lib/cleanpr/args.test.js.map +0 -1
  316. package/dist/lib/cleanpr/cleanup.test.d.ts +0 -2
  317. package/dist/lib/cleanpr/cleanup.test.d.ts.map +0 -1
  318. package/dist/lib/cleanpr/cleanup.test.js +0 -296
  319. package/dist/lib/cleanpr/cleanup.test.js.map +0 -1
  320. package/dist/lib/cleanpr/worktree-info.test.d.ts +0 -2
  321. package/dist/lib/cleanpr/worktree-info.test.d.ts.map +0 -1
  322. package/dist/lib/cleanpr/worktree-info.test.js +0 -228
  323. package/dist/lib/cleanpr/worktree-info.test.js.map +0 -1
  324. package/dist/lib/colors.test.d.ts +0 -2
  325. package/dist/lib/colors.test.d.ts.map +0 -1
  326. package/dist/lib/colors.test.js +0 -142
  327. package/dist/lib/colors.test.js.map +0 -1
  328. package/dist/lib/config-editor.test.d.ts +0 -11
  329. package/dist/lib/config-editor.test.d.ts.map +0 -1
  330. package/dist/lib/config-editor.test.js +0 -526
  331. package/dist/lib/config-editor.test.js.map +0 -1
  332. package/dist/lib/config-migration/detector.test.d.ts +0 -5
  333. package/dist/lib/config-migration/detector.test.d.ts.map +0 -1
  334. package/dist/lib/config-migration/detector.test.js +0 -201
  335. package/dist/lib/config-migration/detector.test.js.map +0 -1
  336. package/dist/lib/config-migration/reporter.test.d.ts +0 -5
  337. package/dist/lib/config-migration/reporter.test.d.ts.map +0 -1
  338. package/dist/lib/config-migration/reporter.test.js +0 -305
  339. package/dist/lib/config-migration/reporter.test.js.map +0 -1
  340. package/dist/lib/config-migration/runner.test.d.ts +0 -5
  341. package/dist/lib/config-migration/runner.test.d.ts.map +0 -1
  342. package/dist/lib/config-migration/runner.test.js +0 -235
  343. package/dist/lib/config-migration/runner.test.js.map +0 -1
  344. package/dist/lib/config-validation.test.d.ts +0 -5
  345. package/dist/lib/config-validation.test.d.ts.map +0 -1
  346. package/dist/lib/config-validation.test.js +0 -423
  347. package/dist/lib/config-validation.test.js.map +0 -1
  348. package/dist/lib/config.test.d.ts +0 -2
  349. package/dist/lib/config.test.d.ts.map +0 -1
  350. package/dist/lib/config.test.js +0 -566
  351. package/dist/lib/config.test.js.map +0 -1
  352. package/dist/lib/constants.test.d.ts +0 -5
  353. package/dist/lib/constants.test.d.ts.map +0 -1
  354. package/dist/lib/constants.test.js +0 -121
  355. package/dist/lib/constants.test.js.map +0 -1
  356. package/dist/lib/errors.test.d.ts +0 -2
  357. package/dist/lib/errors.test.d.ts.map +0 -1
  358. package/dist/lib/errors.test.js +0 -117
  359. package/dist/lib/errors.test.js.map +0 -1
  360. package/dist/lib/git.test.d.ts +0 -2
  361. package/dist/lib/git.test.d.ts.map +0 -1
  362. package/dist/lib/git.test.js +0 -608
  363. package/dist/lib/git.test.js.map +0 -1
  364. package/dist/lib/github.test.d.ts +0 -2
  365. package/dist/lib/github.test.d.ts.map +0 -1
  366. package/dist/lib/github.test.js +0 -441
  367. package/dist/lib/github.test.js.map +0 -1
  368. package/dist/lib/global-check.test.d.ts +0 -5
  369. package/dist/lib/global-check.test.d.ts.map +0 -1
  370. package/dist/lib/global-check.test.js +0 -150
  371. package/dist/lib/global-check.test.js.map +0 -1
  372. package/dist/lib/global-config.test.d.ts +0 -5
  373. package/dist/lib/global-config.test.d.ts.map +0 -1
  374. package/dist/lib/global-config.test.js +0 -282
  375. package/dist/lib/global-config.test.js.map +0 -1
  376. package/dist/lib/hooks/confirmation.test.d.ts +0 -7
  377. package/dist/lib/hooks/confirmation.test.d.ts.map +0 -1
  378. package/dist/lib/hooks/confirmation.test.js +0 -300
  379. package/dist/lib/hooks/confirmation.test.js.map +0 -1
  380. package/dist/lib/hooks/executor.test.d.ts +0 -5
  381. package/dist/lib/hooks/executor.test.d.ts.map +0 -1
  382. package/dist/lib/hooks/executor.test.js +0 -648
  383. package/dist/lib/hooks/executor.test.js.map +0 -1
  384. package/dist/lib/hooks/templates.test.d.ts +0 -5
  385. package/dist/lib/hooks/templates.test.d.ts.map +0 -1
  386. package/dist/lib/hooks/templates.test.js +0 -163
  387. package/dist/lib/hooks/templates.test.js.map +0 -1
  388. package/dist/lib/hooks/types.test.d.ts +0 -5
  389. package/dist/lib/hooks/types.test.d.ts.map +0 -1
  390. package/dist/lib/hooks/types.test.js +0 -132
  391. package/dist/lib/hooks/types.test.js.map +0 -1
  392. package/dist/lib/json-output.test.d.ts +0 -5
  393. package/dist/lib/json-output.test.d.ts.map +0 -1
  394. package/dist/lib/json-output.test.js +0 -261
  395. package/dist/lib/json-output.test.js.map +0 -1
  396. package/dist/lib/logger.test.d.ts +0 -5
  397. package/dist/lib/logger.test.d.ts.map +0 -1
  398. package/dist/lib/logger.test.js +0 -292
  399. package/dist/lib/logger.test.js.map +0 -1
  400. package/dist/lib/lswt/action-executors.test.d.ts +0 -2
  401. package/dist/lib/lswt/action-executors.test.d.ts.map +0 -1
  402. package/dist/lib/lswt/action-executors.test.js +0 -1127
  403. package/dist/lib/lswt/action-executors.test.js.map +0 -1
  404. package/dist/lib/lswt/actions.test.d.ts +0 -2
  405. package/dist/lib/lswt/actions.test.d.ts.map +0 -1
  406. package/dist/lib/lswt/actions.test.js +0 -497
  407. package/dist/lib/lswt/actions.test.js.map +0 -1
  408. package/dist/lib/lswt/args.test.d.ts +0 -2
  409. package/dist/lib/lswt/args.test.d.ts.map +0 -1
  410. package/dist/lib/lswt/args.test.js +0 -195
  411. package/dist/lib/lswt/args.test.js.map +0 -1
  412. package/dist/lib/lswt/environment.test.d.ts +0 -2
  413. package/dist/lib/lswt/environment.test.d.ts.map +0 -1
  414. package/dist/lib/lswt/environment.test.js +0 -544
  415. package/dist/lib/lswt/environment.test.js.map +0 -1
  416. package/dist/lib/lswt/formatters.test.d.ts +0 -2
  417. package/dist/lib/lswt/formatters.test.d.ts.map +0 -1
  418. package/dist/lib/lswt/formatters.test.js +0 -323
  419. package/dist/lib/lswt/formatters.test.js.map +0 -1
  420. package/dist/lib/lswt/fuzzy-search.test.d.ts +0 -5
  421. package/dist/lib/lswt/fuzzy-search.test.d.ts.map +0 -1
  422. package/dist/lib/lswt/fuzzy-search.test.js +0 -207
  423. package/dist/lib/lswt/fuzzy-search.test.js.map +0 -1
  424. package/dist/lib/lswt/interactive.test.d.ts +0 -2
  425. package/dist/lib/lswt/interactive.test.d.ts.map +0 -1
  426. package/dist/lib/lswt/interactive.test.js +0 -771
  427. package/dist/lib/lswt/interactive.test.js.map +0 -1
  428. package/dist/lib/lswt/worktree-info.test.d.ts +0 -2
  429. package/dist/lib/lswt/worktree-info.test.d.ts.map +0 -1
  430. package/dist/lib/lswt/worktree-info.test.js +0 -484
  431. package/dist/lib/lswt/worktree-info.test.js.map +0 -1
  432. package/dist/lib/newpr/action-deps.test.d.ts +0 -5
  433. package/dist/lib/newpr/action-deps.test.d.ts.map +0 -1
  434. package/dist/lib/newpr/action-deps.test.js +0 -111
  435. package/dist/lib/newpr/action-deps.test.js.map +0 -1
  436. package/dist/lib/newpr/actions.test.d.ts +0 -2
  437. package/dist/lib/newpr/actions.test.d.ts.map +0 -1
  438. package/dist/lib/newpr/actions.test.js +0 -254
  439. package/dist/lib/newpr/actions.test.js.map +0 -1
  440. package/dist/lib/newpr/args.test.d.ts +0 -2
  441. package/dist/lib/newpr/args.test.d.ts.map +0 -1
  442. package/dist/lib/newpr/args.test.js +0 -479
  443. package/dist/lib/newpr/args.test.js.map +0 -1
  444. package/dist/lib/newpr/hook-runner.test.d.ts +0 -7
  445. package/dist/lib/newpr/hook-runner.test.d.ts.map +0 -1
  446. package/dist/lib/newpr/hook-runner.test.js +0 -422
  447. package/dist/lib/newpr/hook-runner.test.js.map +0 -1
  448. package/dist/lib/newpr/plan-generator.test.d.ts +0 -7
  449. package/dist/lib/newpr/plan-generator.test.d.ts.map +0 -1
  450. package/dist/lib/newpr/plan-generator.test.js +0 -387
  451. package/dist/lib/newpr/plan-generator.test.js.map +0 -1
  452. package/dist/lib/newpr/scenario-handler.test.d.ts +0 -2
  453. package/dist/lib/newpr/scenario-handler.test.d.ts.map +0 -1
  454. package/dist/lib/newpr/scenario-handler.test.js +0 -256
  455. package/dist/lib/newpr/scenario-handler.test.js.map +0 -1
  456. package/dist/lib/prompts.test.d.ts +0 -2
  457. package/dist/lib/prompts.test.d.ts.map +0 -1
  458. package/dist/lib/prompts.test.js +0 -807
  459. package/dist/lib/prompts.test.js.map +0 -1
  460. package/dist/lib/prs/actions.test.d.ts +0 -5
  461. package/dist/lib/prs/actions.test.d.ts.map +0 -1
  462. package/dist/lib/prs/actions.test.js +0 -356
  463. package/dist/lib/prs/actions.test.js.map +0 -1
  464. package/dist/lib/prs/data.test.d.ts +0 -5
  465. package/dist/lib/prs/data.test.d.ts.map +0 -1
  466. package/dist/lib/prs/data.test.js +0 -417
  467. package/dist/lib/prs/data.test.js.map +0 -1
  468. package/dist/lib/prs/details.test.d.ts +0 -5
  469. package/dist/lib/prs/details.test.d.ts.map +0 -1
  470. package/dist/lib/prs/details.test.js +0 -325
  471. package/dist/lib/prs/details.test.js.map +0 -1
  472. package/dist/lib/prs/filters.test.d.ts +0 -5
  473. package/dist/lib/prs/filters.test.d.ts.map +0 -1
  474. package/dist/lib/prs/filters.test.js +0 -312
  475. package/dist/lib/prs/filters.test.js.map +0 -1
  476. package/dist/lib/prs/formatters.test.d.ts +0 -2
  477. package/dist/lib/prs/formatters.test.d.ts.map +0 -1
  478. package/dist/lib/prs/formatters.test.js +0 -387
  479. package/dist/lib/prs/formatters.test.js.map +0 -1
  480. package/dist/lib/prs/interactive.test.d.ts +0 -5
  481. package/dist/lib/prs/interactive.test.d.ts.map +0 -1
  482. package/dist/lib/prs/interactive.test.js +0 -364
  483. package/dist/lib/prs/interactive.test.js.map +0 -1
  484. package/dist/lib/schema.test.d.ts +0 -10
  485. package/dist/lib/schema.test.d.ts.map +0 -1
  486. package/dist/lib/schema.test.js +0 -309
  487. package/dist/lib/schema.test.js.map +0 -1
  488. package/dist/lib/state-detection.test.d.ts +0 -2
  489. package/dist/lib/state-detection.test.d.ts.map +0 -1
  490. package/dist/lib/state-detection.test.js +0 -451
  491. package/dist/lib/state-detection.test.js.map +0 -1
  492. package/dist/lib/wtconfig/config-manager.test.d.ts +0 -5
  493. package/dist/lib/wtconfig/config-manager.test.d.ts.map +0 -1
  494. package/dist/lib/wtconfig/config-manager.test.js +0 -501
  495. package/dist/lib/wtconfig/config-manager.test.js.map +0 -1
  496. package/dist/lib/wtconfig/environment.test.d.ts +0 -5
  497. package/dist/lib/wtconfig/environment.test.d.ts.map +0 -1
  498. package/dist/lib/wtconfig/environment.test.js +0 -285
  499. package/dist/lib/wtconfig/environment.test.js.map +0 -1
  500. package/dist/lib/wtlink/config-manifest.test.d.ts +0 -2
  501. package/dist/lib/wtlink/config-manifest.test.d.ts.map +0 -1
  502. package/dist/lib/wtlink/config-manifest.test.js +0 -486
  503. package/dist/lib/wtlink/config-manifest.test.js.map +0 -1
  504. package/dist/lib/wtlink/link-configs.test.d.ts +0 -2
  505. package/dist/lib/wtlink/link-configs.test.d.ts.map +0 -1
  506. package/dist/lib/wtlink/link-configs.test.js +0 -612
  507. package/dist/lib/wtlink/link-configs.test.js.map +0 -1
  508. package/dist/lib/wtlink/main-menu.test.d.ts +0 -5
  509. package/dist/lib/wtlink/main-menu.test.d.ts.map +0 -1
  510. package/dist/lib/wtlink/main-menu.test.js +0 -126
  511. package/dist/lib/wtlink/main-menu.test.js.map +0 -1
  512. package/dist/lib/wtlink/manage-manifest.test.d.ts +0 -2
  513. package/dist/lib/wtlink/manage-manifest.test.d.ts.map +0 -1
  514. package/dist/lib/wtlink/manage-manifest.test.js +0 -714
  515. package/dist/lib/wtlink/manage-manifest.test.js.map +0 -1
  516. package/dist/lib/wtlink/validate-manifest.test.d.ts +0 -2
  517. package/dist/lib/wtlink/validate-manifest.test.d.ts.map +0 -1
  518. package/dist/lib/wtlink/validate-manifest.test.js +0 -220
  519. package/dist/lib/wtlink/validate-manifest.test.js.map +0 -1
  520. package/dist/lib/wtstate/analyze.test.d.ts +0 -5
  521. package/dist/lib/wtstate/analyze.test.d.ts.map +0 -1
  522. package/dist/lib/wtstate/analyze.test.js +0 -282
  523. package/dist/lib/wtstate/analyze.test.js.map +0 -1
  524. package/dist/lib/wtstate/args.test.d.ts +0 -5
  525. package/dist/lib/wtstate/args.test.d.ts.map +0 -1
  526. package/dist/lib/wtstate/args.test.js +0 -120
  527. package/dist/lib/wtstate/args.test.js.map +0 -1
  528. package/dist/mcp/server.test.d.ts +0 -9
  529. package/dist/mcp/server.test.d.ts.map +0 -1
  530. package/dist/mcp/server.test.js +0 -439
  531. 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, FORCE_COLOR: '0', NO_COLOR: '1' },
100
- timeout: 10000,
101
- });
102
- try {
103
- // Wait for menu options to fully render (not just the header)
104
- await session.waitFor(/list worktree/i, 5000);
105
- const output = stripAnsi(session.getOutput());
106
- // Should show menu options (at least the first items - PTY buffer may not capture all)
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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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, FORCE_COLOR: '0', 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"}