@newpeak/barista-cli 0.1.8 → 0.1.10

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 (340) hide show
  1. package/README.md +10 -10
  2. package/dist/commands/liberica/index.d.ts.map +1 -1
  3. package/dist/commands/liberica/index.js +9 -0
  4. package/dist/commands/liberica/index.js.map +1 -1
  5. package/dist/commands/liberica/materials/create.d.ts.map +1 -1
  6. package/dist/commands/liberica/materials/create.js +13 -6
  7. package/dist/commands/liberica/materials/create.js.map +1 -1
  8. package/dist/commands/liberica/materials/update.js +1 -1
  9. package/dist/commands/liberica/materials/update.js.map +1 -1
  10. package/dist/commands/liberica/mould/get.d.ts +3 -0
  11. package/dist/commands/liberica/mould/get.d.ts.map +1 -0
  12. package/dist/commands/liberica/mould/get.js +90 -0
  13. package/dist/commands/liberica/mould/get.js.map +1 -0
  14. package/dist/commands/liberica/mould/index.d.ts +3 -0
  15. package/dist/commands/liberica/mould/index.d.ts.map +1 -0
  16. package/dist/commands/liberica/mould/index.js +15 -0
  17. package/dist/commands/liberica/mould/index.js.map +1 -0
  18. package/dist/commands/liberica/mould/list.d.ts +3 -0
  19. package/dist/commands/liberica/mould/list.d.ts.map +1 -0
  20. package/dist/commands/liberica/mould/list.js +114 -0
  21. package/dist/commands/liberica/mould/list.js.map +1 -0
  22. package/dist/commands/liberica/mould/set-status.d.ts +3 -0
  23. package/dist/commands/liberica/mould/set-status.d.ts.map +1 -0
  24. package/dist/commands/liberica/mould/set-status.js +84 -0
  25. package/dist/commands/liberica/mould/set-status.js.map +1 -0
  26. package/dist/commands/liberica/mould/stock-in.d.ts +3 -0
  27. package/dist/commands/liberica/mould/stock-in.d.ts.map +1 -0
  28. package/dist/commands/liberica/mould/stock-in.js +160 -0
  29. package/dist/commands/liberica/mould/stock-in.js.map +1 -0
  30. package/dist/commands/liberica/teams/index.d.ts +3 -0
  31. package/dist/commands/liberica/teams/index.d.ts.map +1 -0
  32. package/dist/commands/liberica/teams/index.js +15 -0
  33. package/dist/commands/liberica/teams/index.js.map +1 -0
  34. package/dist/commands/liberica/teams/issues/close.d.ts +3 -0
  35. package/dist/commands/liberica/teams/issues/close.d.ts.map +1 -0
  36. package/dist/commands/liberica/teams/issues/close.js +99 -0
  37. package/dist/commands/liberica/teams/issues/close.js.map +1 -0
  38. package/dist/commands/liberica/teams/issues/create.d.ts +3 -0
  39. package/dist/commands/liberica/teams/issues/create.d.ts.map +1 -0
  40. package/dist/commands/liberica/teams/issues/create.js +255 -0
  41. package/dist/commands/liberica/teams/issues/create.js.map +1 -0
  42. package/dist/commands/liberica/teams/issues/delete.d.ts +3 -0
  43. package/dist/commands/liberica/teams/issues/delete.d.ts.map +1 -0
  44. package/dist/commands/liberica/teams/issues/delete.js +55 -0
  45. package/dist/commands/liberica/teams/issues/delete.js.map +1 -0
  46. package/dist/commands/liberica/teams/issues/get.d.ts +3 -0
  47. package/dist/commands/liberica/teams/issues/get.d.ts.map +1 -0
  48. package/dist/commands/liberica/teams/issues/get.js +68 -0
  49. package/dist/commands/liberica/teams/issues/get.js.map +1 -0
  50. package/dist/commands/liberica/teams/issues/index.d.ts +3 -0
  51. package/dist/commands/liberica/teams/issues/index.d.ts.map +1 -0
  52. package/dist/commands/liberica/teams/issues/index.js +19 -0
  53. package/dist/commands/liberica/teams/issues/index.js.map +1 -0
  54. package/dist/commands/liberica/teams/issues/list.d.ts +3 -0
  55. package/dist/commands/liberica/teams/issues/list.d.ts.map +1 -0
  56. package/dist/commands/liberica/teams/issues/list.js +111 -0
  57. package/dist/commands/liberica/teams/issues/list.js.map +1 -0
  58. package/dist/commands/liberica/teams/issues/update.d.ts +3 -0
  59. package/dist/commands/liberica/teams/issues/update.d.ts.map +1 -0
  60. package/dist/commands/liberica/teams/issues/update.js +132 -0
  61. package/dist/commands/liberica/teams/issues/update.js.map +1 -0
  62. package/dist/commands/liberica/teams/projects/create.d.ts +3 -0
  63. package/dist/commands/liberica/teams/projects/create.d.ts.map +1 -0
  64. package/dist/commands/liberica/teams/projects/create.js +164 -0
  65. package/dist/commands/liberica/teams/projects/create.js.map +1 -0
  66. package/dist/commands/liberica/teams/projects/delete.d.ts +3 -0
  67. package/dist/commands/liberica/teams/projects/delete.d.ts.map +1 -0
  68. package/dist/commands/liberica/teams/projects/delete.js +55 -0
  69. package/dist/commands/liberica/teams/projects/delete.js.map +1 -0
  70. package/dist/commands/liberica/teams/projects/get.d.ts +3 -0
  71. package/dist/commands/liberica/teams/projects/get.d.ts.map +1 -0
  72. package/dist/commands/liberica/teams/projects/get.js +77 -0
  73. package/dist/commands/liberica/teams/projects/get.js.map +1 -0
  74. package/dist/commands/liberica/teams/projects/index.d.ts +3 -0
  75. package/dist/commands/liberica/teams/projects/index.d.ts.map +1 -0
  76. package/dist/commands/liberica/teams/projects/index.js +17 -0
  77. package/dist/commands/liberica/teams/projects/index.js.map +1 -0
  78. package/dist/commands/liberica/teams/projects/list.d.ts +3 -0
  79. package/dist/commands/liberica/teams/projects/list.d.ts.map +1 -0
  80. package/dist/commands/liberica/teams/projects/list.js +115 -0
  81. package/dist/commands/liberica/teams/projects/list.js.map +1 -0
  82. package/dist/commands/liberica/teams/projects/update.d.ts +3 -0
  83. package/dist/commands/liberica/teams/projects/update.d.ts.map +1 -0
  84. package/dist/commands/liberica/teams/projects/update.js +115 -0
  85. package/dist/commands/liberica/teams/projects/update.js.map +1 -0
  86. package/dist/commands/liberica/teams/tasks/create.d.ts +3 -0
  87. package/dist/commands/liberica/teams/tasks/create.d.ts.map +1 -0
  88. package/dist/commands/liberica/teams/tasks/create.js +88 -0
  89. package/dist/commands/liberica/teams/tasks/create.js.map +1 -0
  90. package/dist/commands/liberica/teams/tasks/delete.d.ts +3 -0
  91. package/dist/commands/liberica/teams/tasks/delete.d.ts.map +1 -0
  92. package/dist/commands/liberica/teams/tasks/delete.js +73 -0
  93. package/dist/commands/liberica/teams/tasks/delete.js.map +1 -0
  94. package/dist/commands/liberica/teams/tasks/get.d.ts +3 -0
  95. package/dist/commands/liberica/teams/tasks/get.d.ts.map +1 -0
  96. package/dist/commands/liberica/teams/tasks/get.js +51 -0
  97. package/dist/commands/liberica/teams/tasks/get.js.map +1 -0
  98. package/dist/commands/liberica/teams/tasks/index.d.ts +3 -0
  99. package/dist/commands/liberica/teams/tasks/index.d.ts.map +1 -0
  100. package/dist/commands/liberica/teams/tasks/index.js +17 -0
  101. package/dist/commands/liberica/teams/tasks/index.js.map +1 -0
  102. package/dist/commands/liberica/teams/tasks/list.d.ts +3 -0
  103. package/dist/commands/liberica/teams/tasks/list.d.ts.map +1 -0
  104. package/dist/commands/liberica/teams/tasks/list.js +82 -0
  105. package/dist/commands/liberica/teams/tasks/list.js.map +1 -0
  106. package/dist/commands/liberica/teams/tasks/update.d.ts +3 -0
  107. package/dist/commands/liberica/teams/tasks/update.d.ts.map +1 -0
  108. package/dist/commands/liberica/teams/tasks/update.js +114 -0
  109. package/dist/commands/liberica/teams/tasks/update.js.map +1 -0
  110. package/dist/commands/liberica/teams/work-logs/create.d.ts +3 -0
  111. package/dist/commands/liberica/teams/work-logs/create.d.ts.map +1 -0
  112. package/dist/commands/liberica/teams/work-logs/create.js +183 -0
  113. package/dist/commands/liberica/teams/work-logs/create.js.map +1 -0
  114. package/dist/commands/liberica/teams/work-logs/delete.d.ts +3 -0
  115. package/dist/commands/liberica/teams/work-logs/delete.d.ts.map +1 -0
  116. package/dist/commands/liberica/teams/work-logs/delete.js +55 -0
  117. package/dist/commands/liberica/teams/work-logs/delete.js.map +1 -0
  118. package/dist/commands/liberica/teams/work-logs/get.d.ts +3 -0
  119. package/dist/commands/liberica/teams/work-logs/get.d.ts.map +1 -0
  120. package/dist/commands/liberica/teams/work-logs/get.js +77 -0
  121. package/dist/commands/liberica/teams/work-logs/get.js.map +1 -0
  122. package/dist/commands/liberica/teams/work-logs/index.d.ts +3 -0
  123. package/dist/commands/liberica/teams/work-logs/index.d.ts.map +1 -0
  124. package/dist/commands/liberica/teams/work-logs/index.js +17 -0
  125. package/dist/commands/liberica/teams/work-logs/index.js.map +1 -0
  126. package/dist/commands/liberica/teams/work-logs/list.d.ts +3 -0
  127. package/dist/commands/liberica/teams/work-logs/list.d.ts.map +1 -0
  128. package/dist/commands/liberica/teams/work-logs/list.js +109 -0
  129. package/dist/commands/liberica/teams/work-logs/list.js.map +1 -0
  130. package/dist/commands/liberica/teams/work-logs/update.d.ts +3 -0
  131. package/dist/commands/liberica/teams/work-logs/update.d.ts.map +1 -0
  132. package/dist/commands/liberica/teams/work-logs/update.js +105 -0
  133. package/dist/commands/liberica/teams/work-logs/update.js.map +1 -0
  134. package/dist/commands/liberica/transfer-in-forms/batch-delete.d.ts +3 -0
  135. package/dist/commands/liberica/transfer-in-forms/batch-delete.d.ts.map +1 -0
  136. package/dist/commands/liberica/transfer-in-forms/batch-delete.js +147 -0
  137. package/dist/commands/liberica/transfer-in-forms/batch-delete.js.map +1 -0
  138. package/dist/commands/liberica/transfer-in-forms/batch-review.d.ts +3 -0
  139. package/dist/commands/liberica/transfer-in-forms/batch-review.d.ts.map +1 -0
  140. package/dist/commands/liberica/transfer-in-forms/batch-review.js +146 -0
  141. package/dist/commands/liberica/transfer-in-forms/batch-review.js.map +1 -0
  142. package/dist/commands/liberica/transfer-in-forms/batch-unreview.d.ts +3 -0
  143. package/dist/commands/liberica/transfer-in-forms/batch-unreview.d.ts.map +1 -0
  144. package/dist/commands/liberica/transfer-in-forms/batch-unreview.js +147 -0
  145. package/dist/commands/liberica/transfer-in-forms/batch-unreview.js.map +1 -0
  146. package/dist/commands/liberica/transfer-in-forms/create.d.ts +3 -0
  147. package/dist/commands/liberica/transfer-in-forms/create.d.ts.map +1 -0
  148. package/dist/commands/liberica/transfer-in-forms/create.js +168 -0
  149. package/dist/commands/liberica/transfer-in-forms/create.js.map +1 -0
  150. package/dist/commands/liberica/transfer-in-forms/get.d.ts +3 -0
  151. package/dist/commands/liberica/transfer-in-forms/get.d.ts.map +1 -0
  152. package/dist/commands/liberica/transfer-in-forms/get.js +94 -0
  153. package/dist/commands/liberica/transfer-in-forms/get.js.map +1 -0
  154. package/dist/commands/liberica/transfer-in-forms/index.d.ts +3 -0
  155. package/dist/commands/liberica/transfer-in-forms/index.d.ts.map +1 -0
  156. package/dist/commands/liberica/transfer-in-forms/index.js +21 -0
  157. package/dist/commands/liberica/transfer-in-forms/index.js.map +1 -0
  158. package/dist/commands/liberica/transfer-in-forms/list.d.ts +3 -0
  159. package/dist/commands/liberica/transfer-in-forms/list.d.ts.map +1 -0
  160. package/dist/commands/liberica/transfer-in-forms/list.js +94 -0
  161. package/dist/commands/liberica/transfer-in-forms/list.js.map +1 -0
  162. package/dist/commands/liberica/transfer-in-forms/update.d.ts +3 -0
  163. package/dist/commands/liberica/transfer-in-forms/update.d.ts.map +1 -0
  164. package/dist/commands/liberica/transfer-in-forms/update.js +206 -0
  165. package/dist/commands/liberica/transfer-in-forms/update.js.map +1 -0
  166. package/dist/commands/liberica/transfer-out-forms/batch-delete.d.ts +3 -0
  167. package/dist/commands/liberica/transfer-out-forms/batch-delete.d.ts.map +1 -0
  168. package/dist/commands/liberica/transfer-out-forms/batch-delete.js +80 -0
  169. package/dist/commands/liberica/transfer-out-forms/batch-delete.js.map +1 -0
  170. package/dist/commands/liberica/transfer-out-forms/batch-review.d.ts +3 -0
  171. package/dist/commands/liberica/transfer-out-forms/batch-review.d.ts.map +1 -0
  172. package/dist/commands/liberica/transfer-out-forms/batch-review.js +142 -0
  173. package/dist/commands/liberica/transfer-out-forms/batch-review.js.map +1 -0
  174. package/dist/commands/liberica/transfer-out-forms/batch-unreview.d.ts +3 -0
  175. package/dist/commands/liberica/transfer-out-forms/batch-unreview.d.ts.map +1 -0
  176. package/dist/commands/liberica/transfer-out-forms/batch-unreview.js +53 -0
  177. package/dist/commands/liberica/transfer-out-forms/batch-unreview.js.map +1 -0
  178. package/dist/commands/liberica/transfer-out-forms/create.d.ts +3 -0
  179. package/dist/commands/liberica/transfer-out-forms/create.d.ts.map +1 -0
  180. package/dist/commands/liberica/transfer-out-forms/create.js +191 -0
  181. package/dist/commands/liberica/transfer-out-forms/create.js.map +1 -0
  182. package/dist/commands/liberica/transfer-out-forms/get.d.ts +3 -0
  183. package/dist/commands/liberica/transfer-out-forms/get.d.ts.map +1 -0
  184. package/dist/commands/liberica/transfer-out-forms/get.js +87 -0
  185. package/dist/commands/liberica/transfer-out-forms/get.js.map +1 -0
  186. package/dist/commands/liberica/transfer-out-forms/index.d.ts +3 -0
  187. package/dist/commands/liberica/transfer-out-forms/index.d.ts.map +1 -0
  188. package/dist/commands/liberica/transfer-out-forms/index.js +21 -0
  189. package/dist/commands/liberica/transfer-out-forms/index.js.map +1 -0
  190. package/dist/commands/liberica/transfer-out-forms/list.d.ts +3 -0
  191. package/dist/commands/liberica/transfer-out-forms/list.d.ts.map +1 -0
  192. package/dist/commands/liberica/transfer-out-forms/list.js +118 -0
  193. package/dist/commands/liberica/transfer-out-forms/list.js.map +1 -0
  194. package/dist/commands/liberica/transfer-out-forms/update.d.ts +3 -0
  195. package/dist/commands/liberica/transfer-out-forms/update.d.ts.map +1 -0
  196. package/dist/commands/liberica/transfer-out-forms/update.js +197 -0
  197. package/dist/commands/liberica/transfer-out-forms/update.js.map +1 -0
  198. package/dist/core/api/client.d.ts +59 -0
  199. package/dist/core/api/client.d.ts.map +1 -1
  200. package/dist/core/api/client.js +1106 -136
  201. package/dist/core/api/client.js.map +1 -1
  202. package/dist/index.js +1 -1
  203. package/dist/index.js.map +1 -1
  204. package/dist/types/index.d.ts +7 -0
  205. package/dist/types/index.d.ts.map +1 -1
  206. package/dist/types/index.js +5 -0
  207. package/dist/types/index.js.map +1 -1
  208. package/dist/types/material.d.ts +1 -1
  209. package/dist/types/material.d.ts.map +1 -1
  210. package/dist/types/mould-stock-in.d.ts +70 -0
  211. package/dist/types/mould-stock-in.d.ts.map +1 -0
  212. package/dist/types/mould-stock-in.js +3 -0
  213. package/dist/types/mould-stock-in.js.map +1 -0
  214. package/dist/types/mould.d.ts +61 -0
  215. package/dist/types/mould.d.ts.map +1 -0
  216. package/dist/types/mould.js +2 -0
  217. package/dist/types/mould.js.map +1 -0
  218. package/dist/types/team-issue.d.ts +87 -0
  219. package/dist/types/team-issue.d.ts.map +1 -0
  220. package/dist/types/team-issue.js +2 -0
  221. package/dist/types/team-issue.js.map +1 -0
  222. package/dist/types/team-project.d.ts +68 -0
  223. package/dist/types/team-project.d.ts.map +1 -0
  224. package/dist/types/team-project.js +2 -0
  225. package/dist/types/team-project.js.map +1 -0
  226. package/dist/types/team-task.d.ts +91 -0
  227. package/dist/types/team-task.d.ts.map +1 -0
  228. package/dist/types/team-task.js +2 -0
  229. package/dist/types/team-task.js.map +1 -0
  230. package/dist/types/team-work-log.d.ts +81 -0
  231. package/dist/types/team-work-log.d.ts.map +1 -0
  232. package/dist/types/team-work-log.js +2 -0
  233. package/dist/types/team-work-log.js.map +1 -0
  234. package/dist/types/transfer-in-form.d.ts +242 -0
  235. package/dist/types/transfer-in-form.d.ts.map +1 -0
  236. package/dist/types/transfer-in-form.js +2 -0
  237. package/dist/types/transfer-in-form.js.map +1 -0
  238. package/dist/types/transfer-out-form.d.ts +252 -0
  239. package/dist/types/transfer-out-form.d.ts.map +1 -0
  240. package/dist/types/transfer-out-form.js +4 -0
  241. package/dist/types/transfer-out-form.js.map +1 -0
  242. package/docs/commands/liberica/teams/issues/close.md +161 -0
  243. package/docs/commands/liberica/teams/issues/create.md +212 -0
  244. package/docs/commands/liberica/teams/issues/delete.md +179 -0
  245. package/docs/commands/liberica/teams/issues/get.md +167 -0
  246. package/docs/commands/liberica/teams/issues/list.md +182 -0
  247. package/docs/commands/liberica/teams/issues/tests-design.md +341 -0
  248. package/docs/commands/liberica/teams/issues/update.md +202 -0
  249. package/docs/commands/liberica/teams/projects/create.md +174 -0
  250. package/docs/commands/liberica/teams/projects/delete.md +180 -0
  251. package/docs/commands/liberica/teams/projects/get.md +150 -0
  252. package/docs/commands/liberica/teams/projects/list.md +179 -0
  253. package/docs/commands/liberica/teams/projects/update.md +175 -0
  254. package/docs/commands/liberica/teams/tasks/create.md +163 -0
  255. package/docs/commands/liberica/teams/tasks/delete.md +109 -0
  256. package/docs/commands/liberica/teams/tasks/get.md +121 -0
  257. package/docs/commands/liberica/teams/tasks/list.md +148 -0
  258. package/docs/commands/liberica/teams/tasks/update.md +158 -0
  259. package/docs/commands/liberica/teams/work-logs/create.md +151 -0
  260. package/docs/commands/liberica/teams/work-logs/delete.md +130 -0
  261. package/docs/commands/liberica/teams/work-logs/get.md +131 -0
  262. package/docs/commands/liberica/teams/work-logs/list.md +153 -0
  263. package/docs/commands/liberica/teams/work-logs/update.md +150 -0
  264. package/docs/commands/liberica/transfer-in-forms/batch-delete.md +157 -0
  265. package/docs/commands/liberica/transfer-in-forms/batch-review.md +157 -0
  266. package/docs/commands/liberica/transfer-in-forms/batch-unreview.md +157 -0
  267. package/docs/commands/liberica/transfer-in-forms/create.md +220 -0
  268. package/docs/commands/liberica/transfer-in-forms/get.md +221 -0
  269. package/docs/commands/liberica/transfer-in-forms/list.md +242 -0
  270. package/docs/commands/liberica/transfer-in-forms/update.md +185 -0
  271. package/docs/commands/liberica/transfer-out-forms/batch-delete.md +187 -0
  272. package/docs/commands/liberica/transfer-out-forms/batch-review.md +157 -0
  273. package/docs/commands/liberica/transfer-out-forms/batch-unreview.md +157 -0
  274. package/docs/commands/liberica/transfer-out-forms/create.md +280 -0
  275. package/docs/commands/liberica/transfer-out-forms/get.md +211 -0
  276. package/docs/commands/liberica/transfer-out-forms/list.md +233 -0
  277. package/docs/commands/liberica/transfer-out-forms/update.md +286 -0
  278. package/package.json +1 -1
  279. package/src/commands/liberica/index.ts +10 -1
  280. package/src/commands/liberica/materials/create.ts +13 -5
  281. package/src/commands/liberica/materials/update.ts +1 -1
  282. package/src/commands/liberica/mould/get.ts +111 -0
  283. package/src/commands/liberica/mould/index.ts +17 -0
  284. package/src/commands/liberica/mould/list.ts +157 -0
  285. package/src/commands/liberica/mould/set-status.ts +99 -0
  286. package/src/commands/liberica/mould/stock-in.ts +165 -0
  287. package/src/commands/liberica/teams/index.ts +17 -0
  288. package/src/commands/liberica/teams/issues/close.ts +104 -0
  289. package/src/commands/liberica/teams/issues/create.ts +254 -0
  290. package/src/commands/liberica/teams/issues/delete.ts +58 -0
  291. package/src/commands/liberica/teams/issues/get.ts +78 -0
  292. package/src/commands/liberica/teams/issues/index.ts +21 -0
  293. package/src/commands/liberica/teams/issues/list.ts +144 -0
  294. package/src/commands/liberica/teams/issues/update.ts +141 -0
  295. package/src/commands/liberica/teams/projects/create.ts +159 -0
  296. package/src/commands/liberica/teams/projects/delete.ts +58 -0
  297. package/src/commands/liberica/teams/projects/get.ts +87 -0
  298. package/src/commands/liberica/teams/projects/index.ts +19 -0
  299. package/src/commands/liberica/teams/projects/list.ts +147 -0
  300. package/src/commands/liberica/teams/projects/update.ts +117 -0
  301. package/src/commands/liberica/teams/tasks/create.ts +102 -0
  302. package/src/commands/liberica/teams/tasks/delete.ts +92 -0
  303. package/src/commands/liberica/teams/tasks/get.ts +64 -0
  304. package/src/commands/liberica/teams/tasks/index.ts +19 -0
  305. package/src/commands/liberica/teams/tasks/list.ts +102 -0
  306. package/src/commands/liberica/teams/tasks/update.ts +122 -0
  307. package/src/commands/liberica/teams/work-logs/create.ts +204 -0
  308. package/src/commands/liberica/teams/work-logs/delete.ts +58 -0
  309. package/src/commands/liberica/teams/work-logs/get.ts +87 -0
  310. package/src/commands/liberica/teams/work-logs/index.ts +19 -0
  311. package/src/commands/liberica/teams/work-logs/list.ts +141 -0
  312. package/src/commands/liberica/teams/work-logs/update.ts +120 -0
  313. package/src/commands/liberica/transfer-in-forms/batch-delete.ts +152 -0
  314. package/src/commands/liberica/transfer-in-forms/batch-review.ts +151 -0
  315. package/src/commands/liberica/transfer-in-forms/batch-unreview.ts +152 -0
  316. package/src/commands/liberica/transfer-in-forms/create.ts +179 -0
  317. package/src/commands/liberica/transfer-in-forms/get.ts +107 -0
  318. package/src/commands/liberica/transfer-in-forms/index.ts +23 -0
  319. package/src/commands/liberica/transfer-in-forms/list.ts +97 -0
  320. package/src/commands/liberica/transfer-in-forms/update.ts +213 -0
  321. package/src/commands/liberica/transfer-out-forms/batch-delete.ts +83 -0
  322. package/src/commands/liberica/transfer-out-forms/batch-review.ts +148 -0
  323. package/src/commands/liberica/transfer-out-forms/batch-unreview.ts +56 -0
  324. package/src/commands/liberica/transfer-out-forms/create.ts +194 -0
  325. package/src/commands/liberica/transfer-out-forms/get.ts +114 -0
  326. package/src/commands/liberica/transfer-out-forms/index.ts +23 -0
  327. package/src/commands/liberica/transfer-out-forms/list.ts +125 -0
  328. package/src/commands/liberica/transfer-out-forms/update.ts +197 -0
  329. package/src/core/api/client.ts +1351 -121
  330. package/src/index.ts +1 -1
  331. package/src/types/index.ts +7 -0
  332. package/src/types/material.ts +1 -1
  333. package/src/types/mould-stock-in.ts +82 -0
  334. package/src/types/mould.ts +74 -0
  335. package/src/types/team-issue.ts +94 -0
  336. package/src/types/team-project.ts +74 -0
  337. package/src/types/team-task.ts +98 -0
  338. package/src/types/team-work-log.ts +87 -0
  339. package/src/types/transfer-in-form.ts +265 -0
  340. package/src/types/transfer-out-form.ts +290 -0
@@ -0,0 +1,182 @@
1
+ # barista liberica teams issues list
2
+
3
+ 分页查询团队问题列表。
4
+
5
+ ## 2.1 命令元数据
6
+
7
+ | 字段 | 值 |
8
+ |------|-----|
9
+ | 完整命令 | `barista liberica teams issues list` |
10
+ | 功能描述 | 分页查询团队问题列表 |
11
+ | HTTP方法 | GET |
12
+ | 是否需要认证 | ✅ 是 |
13
+ | 是否支持dry-run | ⬜ 否 |
14
+
15
+ ## 2.2 后端接口引用
16
+
17
+ ### Controller位置
18
+ ```
19
+ coffee-liberica-end/
20
+ └── facade/liberica-facade-enterprise/
21
+ └── src/main/java/com/newpeak/liberica/facade/enterprise/controller/team/
22
+ └── EnterpriseTeamIssueController.java
23
+ └── page(@GetResource(path = "/page"))
24
+ └── public ResponseData<PageResult<TeamIssueResponse>> page(
25
+ @RequestHeader("X-TENANT-ID") Long tenantId,
26
+ @ParameterObject TeamIssueQueryRequest teamIssueQueryRequest
27
+ )
28
+ ```
29
+
30
+ ### Request DTO位置
31
+ ```
32
+ coffee-liberica-end/
33
+ └── business/liberica-business-team/team-api/
34
+ └── src/main/java/com/newpeak/liberica/team/api/pojo/request/
35
+ └── TeamIssueQueryRequest.java
36
+ ├── pageNo: Long (分页当前页,0-based)
37
+ ├── pageSize: Long (分页大小)
38
+ ├── teamIssueStatus: String (问题状态)
39
+ ├── issueType: String (问题类型)
40
+ ├── priority: String (优先级)
41
+ ├── projectId: Long (所属项目ID)
42
+ ├── issueTitle: String (问题标题,模糊搜索)
43
+ ├── teamIssueCode: String (问题编码)
44
+ ├── reporterName: String (报告人名称)
45
+ └── reportDate: Date (报告日期)
46
+ ```
47
+
48
+ ### Response DTO位置
49
+ ```
50
+ coffee-liberica-end/
51
+ └── business/liberica-business-team/team-api/
52
+ └── src/main/java/com/newpeak/liberica/team/api/pojo/response/
53
+ └── TeamIssueResponse.java
54
+ ├── teamIssueId: Long
55
+ ├── teamIssueCode: String
56
+ ├── issueTitle: String
57
+ ├── issueType: String
58
+ ├── teamIssueStatus: String
59
+ ├── priority: String
60
+ ├── reporterName: String
61
+ ├── projectId: Long
62
+ ├── projectCode: String
63
+ ├── projectName: String
64
+ ├── reportDate: Date
65
+ └── createTime: String
66
+ ```
67
+
68
+ ### 分页包装器
69
+ ```
70
+ cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult
71
+ ├── totalRows: long
72
+ ├── pageSize: long
73
+ ├── pageNo: long
74
+ └── rows: List<TeamIssueResponse>
75
+ ```
76
+
77
+ ## 2.3 CLI参数设计
78
+
79
+ ### 命令结构
80
+ ```
81
+ barista liberica teams issues list [options]
82
+ ```
83
+
84
+ ### Usage
85
+ ```bash
86
+ barista liberica teams issues list
87
+ barista liberica teams issues list --page 2 --size 50
88
+ ```
89
+
90
+ ### 全局选项
91
+ | 选项 | 类型 | 说明 |
92
+ |------|------|------|
93
+ | `--env` | string | 目标环境(dev\|test\|prod-cn\|prod-jp) |
94
+ | `--tenant` | string | 租户代码 |
95
+ | `--json` | boolean | JSON输出 |
96
+
97
+ ### 命令选项
98
+ | 选项 | 短选项 | 类型 | 必填 | 默认值 | 说明 | 对应DTO字段 |
99
+ |------|--------|------|------|--------|------|-------------|
100
+ | --page | -p | number | ⬜ | 1 | 页码(1-based) | pageNo |
101
+ | --size | -s | number | ⬜ | 20 | 每页条数 | pageSize |
102
+ | --status | — | string | ⬜ | - | 按状态筛选(OPEN/IN_PROGRESS/RESOLVED/CLOSED) | teamIssueStatus |
103
+ | --type | -t | string | ⬜ | - | 按类型筛选(BUG/REQUIREMENT/QUESTION) | issueType |
104
+ | --priority | — | string | ⬜ | - | 按优先级筛选(LOW/MEDIUM/HIGH/URGENT) | priority |
105
+ | --project-id | — | string | ⬜ | - | 按项目ID筛选 | projectId |
106
+ | --title | — | string | ⬜ | - | 按标题模糊搜索 | issueTitle |
107
+
108
+ ## 2.4 字段映射表
109
+
110
+ | CLI参数 | DTO字段 | 类型转换 | 验证规则 |
111
+ |---------|---------|----------|----------|
112
+ | --page / -p | pageNo | number→Long, CLI page - 1 | >= 0 |
113
+ | --size / -s | pageSize | number→Long | > 0 |
114
+ | --status | teamIssueStatus | 直接传递 | OPEN, IN_PROGRESS, RESOLVED, CLOSED |
115
+ | --type / -t | issueType | 直接传递 | BUG, REQUIREMENT, QUESTION |
116
+ | --priority | priority | 直接传递 | LOW, MEDIUM, HIGH, URGENT |
117
+ | --project-id | projectId | string→Long | - |
118
+ | --title | issueTitle | 直接传递 | max=500 |
119
+
120
+ ## 2.5 错误码引用
121
+
122
+ ### ExceptionEnum位置
123
+ ```
124
+ coffee-liberica-end/
125
+ └── business/liberica-business-team/team-api/
126
+ └── src/main/java/com/newpeak/liberica/team/api/exception/enums/
127
+ └── TeamIssueExceptionEnum.java
128
+ └── TEAM_ISSUE_NOT_EXIST("01001958001", "团队问题不存在")
129
+ ```
130
+
131
+ ### 已知错误码
132
+ | 错误码 | 错误消息 | 触发条件 |
133
+ |--------|----------|----------|
134
+ | 01001958001 | 团队问题不存在 | 详情/编辑/删除时ID不存在 |
135
+
136
+ ## 2.6 权限检查
137
+
138
+ | 检查项 | 位置 | 说明 |
139
+ |--------|------|------|
140
+ | 注解 | `@GetResource(path = "/page")` | 无 requiredPermission(列表查询无需权限码) |
141
+
142
+ **注意**:list 和 page 接口在 Controller 层无需权限校验,数据范围通过 tenantId 隔离。
143
+
144
+ ## 2.7 实现要点
145
+
146
+ 1. **分页默认值**:page=1, size=20
147
+ 2. **分页转换**:CLI 使用 1-based 页码,API 使用 0-based,转换公式 `pageNo = options.page - 1`
148
+ 3. **响应字段**:后端返回 `rows`、`totalRows`、`pageNo`、`pageSize`,不使用 `records` 或 `total`
149
+ 4. **ID 类型处理**:`teamIssueId`、`projectId` 等 ID 字段后端使用 Long (BigInteger),CLI 使用 string 避免精度丢失
150
+ 5. **无结果处理**:返回空列表,不抛出异常
151
+ 6. **输出格式**:表格形式展示 ID、Code、Title、Type、Status、Priority、Reporter、Project
152
+
153
+ ## 2.8 示例用法
154
+
155
+ ```bash
156
+ # 默认分页
157
+ barista liberica teams issues list
158
+
159
+ # 指定页码和每页条数
160
+ barista liberica teams issues list --page 2 --size 50
161
+
162
+ # 按状态筛选
163
+ barista liberica teams issues list --status OPEN
164
+
165
+ # 按类型筛选
166
+ barista liberica teams issues list --type BUG
167
+
168
+ # 按优先级筛选
169
+ barista liberica teams issues list --priority HIGH
170
+
171
+ # 按项目ID筛选
172
+ barista liberica teams issues list --project-id 123456789
173
+
174
+ # 按标题搜索
175
+ barista liberica teams issues list --title "登录失败"
176
+
177
+ # 组合筛选
178
+ barista liberica teams issues list --status OPEN --type BUG --priority HIGH
179
+
180
+ # JSON 输出
181
+ barista liberica teams issues list --json
182
+ ```
@@ -0,0 +1,341 @@
1
+ # Team Issue Commands - Unit Test Design
2
+
3
+ This document defines the unit test scenarios for all Team Issue commands in `barista liberica teams issues`.
4
+
5
+ **Reference implementations:** `src/commands/liberica/teams/issues/*.ts`
6
+
7
+ **Reference test patterns:** `tests/unit/commands/liberica/warehouses/*.test.ts`
8
+
9
+ **Target test files (Wave 3):**
10
+ - `tests/unit/commands/liberica/teams/issues/list.test.ts`
11
+ - `tests/unit/commands/liberica/teams/issues/get.test.ts`
12
+ - `tests/unit/commands/liberica/teams/issues/create.test.ts`
13
+ - `tests/unit/commands/liberica/teams/issues/update.test.ts`
14
+ - `tests/unit/commands/liberica/teams/issues/delete.test.ts`
15
+ - `tests/unit/commands/liberica/teams/issues/close.test.ts`
16
+
17
+ ---
18
+
19
+ ## Shared Mock Setup
20
+
21
+ All tests should use the standard Vitest mock pattern from warehouse tests.
22
+
23
+ ```typescript
24
+ import { describe, it, expect, beforeEach, vi } from 'vitest';
25
+
26
+ vi.mock('chalk', () => ({
27
+ default: {
28
+ bold: vi.fn((text) => text),
29
+ green: vi.fn((text) => text),
30
+ red: vi.fn((text) => text),
31
+ gray: vi.fn((text) => text),
32
+ cyan: vi.fn((text) => text),
33
+ yellow: vi.fn((text) => text),
34
+ blue: vi.fn((text) => text),
35
+ },
36
+ }));
37
+
38
+ vi.mock('../../../../../../src/core/config/manager.js', () => ({
39
+ configManager: {
40
+ getCurrentContext: vi.fn(() => ({
41
+ environment: 'dev' as const,
42
+ service: 'liberica' as const,
43
+ tenant: 'test-tenant',
44
+ })),
45
+ },
46
+ }));
47
+
48
+ vi.mock('../../../../../../src/core/auth/token-manager.js', () => ({
49
+ tokenManager: {
50
+ getToken: vi.fn(() => Promise.resolve('test-token')),
51
+ },
52
+ }));
53
+ ```
54
+
55
+ ---
56
+
57
+ ## 1. `list` Command
58
+
59
+ **File:** `src/commands/liberica/teams/issues/list.ts`
60
+
61
+ **API method:** `apiClient.listTeamIssues(environment, tenant, params)`
62
+
63
+ ### Test Scenarios
64
+
65
+ #### 1.1 Normal flow - valid input returns expected output
66
+ - Mock `apiClient.listTeamIssues` to return a `TeamIssueListResponse` with 2 rows.
67
+ - Parse `['node', 'test', '--page', '2', '--size', '10']`.
68
+ - Assert `apiClient.listTeamIssues` was called with `pageNo: 1`, `pageSize: 10`.
69
+ - Assert console output contains both issue titles and reporter names.
70
+
71
+ #### 1.2 Missing required parameters - shows helpful error
72
+ - No required parameters exist for `list`. This scenario becomes:
73
+ - Parse with no options (`['node', 'test']`).
74
+ - Assert default `pageNo: 0`, `pageSize: 20` is sent.
75
+ - Assert output is still rendered gracefully (no crash).
76
+
77
+ #### 1.3 Invalid parameter values - validates and reports
78
+ - Parse `['node', 'test', '--page', 'abc']`.
79
+ - `parseInt('abc')` yields `NaN`, resulting in `pageNo: NaN`.
80
+ - Assert command handles this without throwing an unhandled exception (current implementation passes raw `NaN` to API).
81
+ - Test passes invalid `--status` value `PENDING`.
82
+ - Assert API is called with the raw string (filter validation is server-side).
83
+
84
+ #### 1.4 Dry-run mode - not applicable
85
+ - `list` is a read-only command and does not support `--dry-run`.
86
+ - This test should verify that `--dry-run` is ignored or treated as unknown option.
87
+
88
+ #### 1.5 Error response handling - API errors displayed correctly
89
+ - Mock `apiClient.listTeamIssues` to return `{ success: false, error: { code: 'QUERY_FAILED', message: '查询失败' } }`.
90
+ - Assert `process.exit(1)` is triggered and `console.error` contains the error message and code.
91
+
92
+ #### 1.6 JSON output mode
93
+ - Mock success response with 1 row.
94
+ - Parse with `--json`.
95
+ - Assert output is valid JSON containing `success: true`, `items`, and `pagination`.
96
+
97
+ #### 1.7 Empty results handling
98
+ - Mock success response with empty `rows` array.
99
+ - Assert human-readable output contains "No team issues found".
100
+ - For `--json`, assert `items: []` and `totalRows: 0`.
101
+
102
+ ---
103
+
104
+ ## 2. `get` Command
105
+
106
+ **File:** `src/commands/liberica/teams/issues/get.ts`
107
+
108
+ **API method:** `apiClient.getTeamIssue(environment, tenant, issueId)`
109
+
110
+ ### Test Scenarios
111
+
112
+ #### 2.1 Normal flow - valid input returns expected output
113
+ - Mock `apiClient.getTeamIssue` to return a full `TeamIssue` object.
114
+ - Parse `['node', 'test', '123456789']`.
115
+ - Assert `apiClient.getTeamIssue` called with issue ID `'123456789'`.
116
+ - Assert console output contains `issueTitle`, `teamIssueStatus`, `priority`, `reporterName`.
117
+
118
+ #### 2.2 Missing required parameters - shows helpful error
119
+ - Parse `['node', 'test', '']` (empty issue ID).
120
+ - Assert `console.error` contains "Issue ID is required" and `process.exit(1)`.
121
+
122
+ #### 2.3 Invalid parameter values - validates and reports
123
+ - Parse `['node', 'test', ' ']` (whitespace-only issue ID).
124
+ - Assert same error as empty ID: "Issue ID is required".
125
+
126
+ #### 2.4 Dry-run mode - not applicable
127
+ - `get` is read-only and does not support `--dry-run`.
128
+ - Verify `--dry-run` is not a recognized option.
129
+
130
+ #### 2.5 Error response handling - API errors displayed correctly
131
+ - Mock `apiClient.getTeamIssue` to return `{ success: false, error: { code: 'TEAM_ISSUE_NOT_EXIST', message: '团队问题不存在' } }`.
132
+ - Assert `console.error` contains the message and code, followed by `process.exit(1)`.
133
+
134
+ #### 2.6 JSON output mode
135
+ - Mock success response.
136
+ - Parse `['node', 'test', '123', '--json']`.
137
+ - Assert output is valid JSON with `success: true` and full `data` object.
138
+
139
+ #### 2.7 Null data handling
140
+ - Mock `{ success: true, data: null }`.
141
+ - Assert output shows "Issue not found" and exits with code 1.
142
+
143
+ ---
144
+
145
+ ## 3. `create` Command
146
+
147
+ **File:** `src/commands/liberica/teams/issues/create.ts`
148
+
149
+ **API method:** `apiClient.createTeamIssue(environment, tenant, request)`
150
+
151
+ ### Test Scenarios
152
+
153
+ #### 3.1 Normal flow - valid input returns expected output
154
+ - Parse with all required fields: `--title`, `--desc`, `--type`, `--project-id`, `--project-code`, `--project-name`.
155
+ - Mock `apiClient.createTeamIssue` to return `{ success: true, data: { teamIssueId: '123', ... } }`.
156
+ - Assert API called with correct payload including `reportDate` as ISO string.
157
+ - Assert success message contains "Team issue created successfully" and the returned issue ID.
158
+
159
+ #### 3.2 Missing required parameters - shows helpful error
160
+ - Parse without `--title`.
161
+ - Assert `console.error` (or `console.log` for JSON) contains "--title is required" and exits with code 1.
162
+ - Repeat individually for `--desc`, `--type`, `--project-id`, `--project-code`, `--project-name`.
163
+
164
+ #### 3.3 Invalid parameter values - validates and reports
165
+ - Parse with `--type INVALID_TYPE`.
166
+ - Assert error message lists valid values: `BUG, REQUIREMENT, QUESTION`.
167
+ - Parse with `--priority INVALID`.
168
+ - Assert error message lists valid values: `LOW, MEDIUM, HIGH, URGENT`.
169
+ - Parse with `--status INVALID`.
170
+ - Assert error message lists valid values: `OPEN, IN_PROGRESS, RESOLVED, CLOSED`.
171
+
172
+ #### 3.4 Dry-run mode - shows preview without executing
173
+ - Parse with all required fields plus `--dry-run`.
174
+ - Assert `apiClient.createTeamIssue` is **not** called.
175
+ - Assert console output contains "Dry-Run Mode" and previews the issue fields.
176
+ - Repeat with `--dry-run --json` and assert JSON output contains `dryRun: true`.
177
+
178
+ #### 3.5 Error response handling - API errors displayed correctly
179
+ - Mock API to return `{ success: false, error: { code: 'CREATE_FAILED', message: '创建失败' } }`.
180
+ - Assert `console.error` contains the message and code, then `process.exit(1)`.
181
+ - Test JSON mode: assert output is `{ success: false, error: { code, message } }`.
182
+
183
+ #### 3.6 Comma-separated array parsing
184
+ - Parse with `--assign-to 'user1,user2'` and `--tags 'bug,critical'`.
185
+ - Assert payload contains `assignTo: ['user1', 'user2']` and `tags: ['bug', 'critical']`.
186
+
187
+ #### 3.7 JSON output on success
188
+ - Mock success response.
189
+ - Parse with `--json`.
190
+ - Assert output JSON contains `success: true` and created issue data.
191
+
192
+ ---
193
+
194
+ ## 4. `update` Command
195
+
196
+ **File:** `src/commands/liberica/teams/issues/update.ts`
197
+
198
+ **API method:** `apiClient.updateTeamIssue(environment, tenant, request)`
199
+
200
+ ### Test Scenarios
201
+
202
+ #### 4.1 Normal flow - valid input returns expected output
203
+ - Parse `['node', 'test', '123', '--title', 'Updated Title']`.
204
+ - Mock `apiClient.updateTeamIssue` to return `{ success: true, data: { ... } }`.
205
+ - Assert API called with `{ teamIssueId: '123', issueTitle: 'Updated Title' }`.
206
+ - Assert success message "Team issue updated successfully".
207
+
208
+ #### 4.2 Missing required parameters - shows helpful error
209
+ - Parse `['node', 'test', '123']` with no update fields.
210
+ - Assert `console.error` contains "No fields to update" and exits with code 1.
211
+
212
+ #### 4.3 Invalid parameter values - validates and reports
213
+ - Parse with `--type INVALID_TYPE`.
214
+ - Assert the command still passes the raw value to the API (current implementation does not validate on update).
215
+ - Note: because the command does not validate enums on update, the test documents this behavior.
216
+
217
+ #### 4.4 Dry-run mode - not applicable
218
+ - `update` does not currently support `--dry-run`.
219
+ - Verify `--dry-run` is not a recognized option.
220
+
221
+ #### 4.5 Error response handling - API errors displayed correctly
222
+ - Mock API to return `{ success: false, error: { code: 'UPDATE_FAILED', message: '更新失败' } }`.
223
+ - Assert `console.error` contains the message in plain mode.
224
+ - Assert JSON mode returns `{ success: false, error: ... }` and exits with code 1.
225
+
226
+ #### 4.6 Comma-separated array parsing
227
+ - Parse with `--assign-to 'user1, user2'` and `--tags 'tag1, tag2'`.
228
+ - Assert API payload contains trimmed arrays.
229
+
230
+ #### 4.7 JSON output on success
231
+ - Mock success response.
232
+ - Parse with `--json`.
233
+ - Assert output is valid JSON with `success: true` and `data`.
234
+
235
+ #### 4.8 Unexpected exception handling
236
+ - Mock `apiClient.updateTeamIssue` to throw `new Error('Network failure')`.
237
+ - Assert `console.error` contains "Network failure" and `process.exit(1)`.
238
+ - Test JSON mode returns `{ success: false, error: { message: 'Network failure' } }`.
239
+
240
+ ---
241
+
242
+ ## 5. `delete` Command
243
+
244
+ **File:** `src/commands/liberica/teams/issues/delete.ts`
245
+
246
+ **API method:** `apiClient.deleteTeamIssue(environment, tenant, issueId)`
247
+
248
+ ### Test Scenarios
249
+
250
+ #### 5.1 Normal flow - valid input returns expected output
251
+ - Parse `['node', 'test', '123', '--force']`.
252
+ - Mock `apiClient.deleteTeamIssue` to return `{ success: true, data: { teamIssueId: '123' } }`.
253
+ - Assert API called with issue ID `'123'`.
254
+ - Assert success message contains "Issue 123 deleted".
255
+
256
+ #### 5.2 Missing required parameters - shows helpful error
257
+ - Parse `['node', 'test', '']` (empty issue ID).
258
+ - Assert `console.error` contains "Issue ID is required" and exits with code 1.
259
+
260
+ #### 5.3 Invalid parameter values - validates and reports
261
+ - Parse `['node', 'test', ' ']` (whitespace-only issue ID).
262
+ - Assert same error: "Issue ID is required".
263
+
264
+ #### 5.4 Dry-run mode - shows preview without executing
265
+ - Parse `['node', 'test', '123', '--dry-run']`.
266
+ - Assert `apiClient.deleteTeamIssue` is **not** called.
267
+ - Assert console output contains "Delete Issue (Dry Run)" and issue ID.
268
+ - Repeat with `--dry-run --json` and assert JSON contains `dryRun: true`.
269
+
270
+ #### 5.5 Error response handling - API errors displayed correctly
271
+ - Mock API to return `{ success: false, error: { code: 'DELETE_FAILED', message: '删除失败' } }`.
272
+ - Assert `console.error` contains the message and exits with code 1.
273
+
274
+ #### 5.6 Missing `--force` handling
275
+ - Parse `['node', 'test', '123']` without `--force`.
276
+ - Assert command prints warning "Add --force to confirm deletion" and exits with code 0 (not 1).
277
+ - Assert `apiClient.deleteTeamIssue` is **not** called.
278
+
279
+ #### 5.7 JSON output on success
280
+ - Parse `['node', 'test', '123', '--force', '--json']`.
281
+ - Mock success response.
282
+ - Assert output JSON contains `success: true` and `issueId`.
283
+
284
+ ---
285
+
286
+ ## 6. `close` Command
287
+
288
+ **File:** `src/commands/liberica/teams/issues/close.ts`
289
+
290
+ **API method:** `apiClient.updateTeamIssue(environment, tenant, request)`
291
+
292
+ ### Test Scenarios
293
+
294
+ #### 6.1 Normal flow - valid input returns expected output
295
+ - Parse `['node', 'test', '123']`.
296
+ - Mock `apiClient.updateTeamIssue` to return `{ success: true, data: { teamIssueId: '123', teamIssueStatus: 'CLOSED' } }`.
297
+ - Assert API called with `{ teamIssueId: '123', teamIssueStatus: 'CLOSED' }`.
298
+ - Assert success message contains "Issue 123 closed successfully".
299
+
300
+ #### 6.2 Missing required parameters - shows helpful error
301
+ - Parse `['node', 'test', '']` (empty issue ID).
302
+ - Assert `console.error` contains "Issue ID is required" and exits with code 1.
303
+
304
+ #### 6.3 Invalid parameter values - validates and reports
305
+ - Parse `['node', 'test', ' ']` (whitespace-only issue ID).
306
+ - Assert same error: "Issue ID is required".
307
+
308
+ #### 6.4 Dry-run mode - not applicable
309
+ - `close` does not currently support `--dry-run`.
310
+ - Verify `--dry-run` is not a recognized option.
311
+
312
+ #### 6.5 Error response handling - API errors displayed correctly
313
+ - Mock API to return `{ success: false, error: { code: 'CLOSE_FAILED', message: '关闭失败' } }`.
314
+ - Assert `console.error` contains the message in plain mode.
315
+ - Assert JSON mode returns `{ success: false, error: ... }` and exits with code 1.
316
+
317
+ #### 6.6 JSON output on success
318
+ - Parse `['node', 'test', '123', '--json']`.
319
+ - Mock success response.
320
+ - Assert output is valid JSON with `success: true` and `data`.
321
+
322
+ #### 6.7 Unexpected exception handling
323
+ - Mock `apiClient.updateTeamIssue` to throw `new Error('Connection timeout')`.
324
+ - Assert `console.error` contains "Connection timeout" and `process.exit(1)`.
325
+ - Test JSON mode returns `{ success: false, error: { message: 'Connection timeout' } }`.
326
+
327
+ ---
328
+
329
+ ## Summary Table
330
+
331
+ | Command | Normal Flow | Missing Params | Invalid Values | Dry-Run | Error Response | Extra Scenarios |
332
+ |---------|-------------|----------------|----------------|---------|----------------|-----------------|
333
+ | `list` | 1.1 | 1.2 | 1.3 | N/A | 1.5 | JSON, empty results |
334
+ | `get` | 2.1 | 2.2 | 2.3 | N/A | 2.5 | JSON, null data |
335
+ | `create`| 3.1 | 3.2 | 3.3 | 3.4 | 3.5 | Arrays, JSON |
336
+ | `update`| 4.1 | 4.2 | 4.3 | N/A | 4.5 | Arrays, JSON, exceptions |
337
+ | `delete`| 5.1 | 5.2 | 5.3 | 5.4 | 5.5 | Force check, JSON |
338
+ | `close` | 6.1 | 6.2 | 6.3 | N/A | 6.5 | JSON, exceptions |
339
+
340
+ Total minimum scenarios: 30 (5 per command).
341
+ Total documented scenarios: 38 (includes edge cases and output-format tests).