@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.
- package/README.md +10 -10
- package/dist/commands/liberica/index.d.ts.map +1 -1
- package/dist/commands/liberica/index.js +9 -0
- package/dist/commands/liberica/index.js.map +1 -1
- package/dist/commands/liberica/materials/create.d.ts.map +1 -1
- package/dist/commands/liberica/materials/create.js +13 -6
- package/dist/commands/liberica/materials/create.js.map +1 -1
- package/dist/commands/liberica/materials/update.js +1 -1
- package/dist/commands/liberica/materials/update.js.map +1 -1
- package/dist/commands/liberica/mould/get.d.ts +3 -0
- package/dist/commands/liberica/mould/get.d.ts.map +1 -0
- package/dist/commands/liberica/mould/get.js +90 -0
- package/dist/commands/liberica/mould/get.js.map +1 -0
- package/dist/commands/liberica/mould/index.d.ts +3 -0
- package/dist/commands/liberica/mould/index.d.ts.map +1 -0
- package/dist/commands/liberica/mould/index.js +15 -0
- package/dist/commands/liberica/mould/index.js.map +1 -0
- package/dist/commands/liberica/mould/list.d.ts +3 -0
- package/dist/commands/liberica/mould/list.d.ts.map +1 -0
- package/dist/commands/liberica/mould/list.js +114 -0
- package/dist/commands/liberica/mould/list.js.map +1 -0
- package/dist/commands/liberica/mould/set-status.d.ts +3 -0
- package/dist/commands/liberica/mould/set-status.d.ts.map +1 -0
- package/dist/commands/liberica/mould/set-status.js +84 -0
- package/dist/commands/liberica/mould/set-status.js.map +1 -0
- package/dist/commands/liberica/mould/stock-in.d.ts +3 -0
- package/dist/commands/liberica/mould/stock-in.d.ts.map +1 -0
- package/dist/commands/liberica/mould/stock-in.js +160 -0
- package/dist/commands/liberica/mould/stock-in.js.map +1 -0
- package/dist/commands/liberica/teams/index.d.ts +3 -0
- package/dist/commands/liberica/teams/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/index.js +15 -0
- package/dist/commands/liberica/teams/index.js.map +1 -0
- package/dist/commands/liberica/teams/issues/close.d.ts +3 -0
- package/dist/commands/liberica/teams/issues/close.d.ts.map +1 -0
- package/dist/commands/liberica/teams/issues/close.js +99 -0
- package/dist/commands/liberica/teams/issues/close.js.map +1 -0
- package/dist/commands/liberica/teams/issues/create.d.ts +3 -0
- package/dist/commands/liberica/teams/issues/create.d.ts.map +1 -0
- package/dist/commands/liberica/teams/issues/create.js +255 -0
- package/dist/commands/liberica/teams/issues/create.js.map +1 -0
- package/dist/commands/liberica/teams/issues/delete.d.ts +3 -0
- package/dist/commands/liberica/teams/issues/delete.d.ts.map +1 -0
- package/dist/commands/liberica/teams/issues/delete.js +55 -0
- package/dist/commands/liberica/teams/issues/delete.js.map +1 -0
- package/dist/commands/liberica/teams/issues/get.d.ts +3 -0
- package/dist/commands/liberica/teams/issues/get.d.ts.map +1 -0
- package/dist/commands/liberica/teams/issues/get.js +68 -0
- package/dist/commands/liberica/teams/issues/get.js.map +1 -0
- package/dist/commands/liberica/teams/issues/index.d.ts +3 -0
- package/dist/commands/liberica/teams/issues/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/issues/index.js +19 -0
- package/dist/commands/liberica/teams/issues/index.js.map +1 -0
- package/dist/commands/liberica/teams/issues/list.d.ts +3 -0
- package/dist/commands/liberica/teams/issues/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/issues/list.js +111 -0
- package/dist/commands/liberica/teams/issues/list.js.map +1 -0
- package/dist/commands/liberica/teams/issues/update.d.ts +3 -0
- package/dist/commands/liberica/teams/issues/update.d.ts.map +1 -0
- package/dist/commands/liberica/teams/issues/update.js +132 -0
- package/dist/commands/liberica/teams/issues/update.js.map +1 -0
- package/dist/commands/liberica/teams/projects/create.d.ts +3 -0
- package/dist/commands/liberica/teams/projects/create.d.ts.map +1 -0
- package/dist/commands/liberica/teams/projects/create.js +164 -0
- package/dist/commands/liberica/teams/projects/create.js.map +1 -0
- package/dist/commands/liberica/teams/projects/delete.d.ts +3 -0
- package/dist/commands/liberica/teams/projects/delete.d.ts.map +1 -0
- package/dist/commands/liberica/teams/projects/delete.js +55 -0
- package/dist/commands/liberica/teams/projects/delete.js.map +1 -0
- package/dist/commands/liberica/teams/projects/get.d.ts +3 -0
- package/dist/commands/liberica/teams/projects/get.d.ts.map +1 -0
- package/dist/commands/liberica/teams/projects/get.js +77 -0
- package/dist/commands/liberica/teams/projects/get.js.map +1 -0
- package/dist/commands/liberica/teams/projects/index.d.ts +3 -0
- package/dist/commands/liberica/teams/projects/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/projects/index.js +17 -0
- package/dist/commands/liberica/teams/projects/index.js.map +1 -0
- package/dist/commands/liberica/teams/projects/list.d.ts +3 -0
- package/dist/commands/liberica/teams/projects/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/projects/list.js +115 -0
- package/dist/commands/liberica/teams/projects/list.js.map +1 -0
- package/dist/commands/liberica/teams/projects/update.d.ts +3 -0
- package/dist/commands/liberica/teams/projects/update.d.ts.map +1 -0
- package/dist/commands/liberica/teams/projects/update.js +115 -0
- package/dist/commands/liberica/teams/projects/update.js.map +1 -0
- package/dist/commands/liberica/teams/tasks/create.d.ts +3 -0
- package/dist/commands/liberica/teams/tasks/create.d.ts.map +1 -0
- package/dist/commands/liberica/teams/tasks/create.js +88 -0
- package/dist/commands/liberica/teams/tasks/create.js.map +1 -0
- package/dist/commands/liberica/teams/tasks/delete.d.ts +3 -0
- package/dist/commands/liberica/teams/tasks/delete.d.ts.map +1 -0
- package/dist/commands/liberica/teams/tasks/delete.js +73 -0
- package/dist/commands/liberica/teams/tasks/delete.js.map +1 -0
- package/dist/commands/liberica/teams/tasks/get.d.ts +3 -0
- package/dist/commands/liberica/teams/tasks/get.d.ts.map +1 -0
- package/dist/commands/liberica/teams/tasks/get.js +51 -0
- package/dist/commands/liberica/teams/tasks/get.js.map +1 -0
- package/dist/commands/liberica/teams/tasks/index.d.ts +3 -0
- package/dist/commands/liberica/teams/tasks/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/tasks/index.js +17 -0
- package/dist/commands/liberica/teams/tasks/index.js.map +1 -0
- package/dist/commands/liberica/teams/tasks/list.d.ts +3 -0
- package/dist/commands/liberica/teams/tasks/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/tasks/list.js +82 -0
- package/dist/commands/liberica/teams/tasks/list.js.map +1 -0
- package/dist/commands/liberica/teams/tasks/update.d.ts +3 -0
- package/dist/commands/liberica/teams/tasks/update.d.ts.map +1 -0
- package/dist/commands/liberica/teams/tasks/update.js +114 -0
- package/dist/commands/liberica/teams/tasks/update.js.map +1 -0
- package/dist/commands/liberica/teams/work-logs/create.d.ts +3 -0
- package/dist/commands/liberica/teams/work-logs/create.d.ts.map +1 -0
- package/dist/commands/liberica/teams/work-logs/create.js +183 -0
- package/dist/commands/liberica/teams/work-logs/create.js.map +1 -0
- package/dist/commands/liberica/teams/work-logs/delete.d.ts +3 -0
- package/dist/commands/liberica/teams/work-logs/delete.d.ts.map +1 -0
- package/dist/commands/liberica/teams/work-logs/delete.js +55 -0
- package/dist/commands/liberica/teams/work-logs/delete.js.map +1 -0
- package/dist/commands/liberica/teams/work-logs/get.d.ts +3 -0
- package/dist/commands/liberica/teams/work-logs/get.d.ts.map +1 -0
- package/dist/commands/liberica/teams/work-logs/get.js +77 -0
- package/dist/commands/liberica/teams/work-logs/get.js.map +1 -0
- package/dist/commands/liberica/teams/work-logs/index.d.ts +3 -0
- package/dist/commands/liberica/teams/work-logs/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/work-logs/index.js +17 -0
- package/dist/commands/liberica/teams/work-logs/index.js.map +1 -0
- package/dist/commands/liberica/teams/work-logs/list.d.ts +3 -0
- package/dist/commands/liberica/teams/work-logs/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/work-logs/list.js +109 -0
- package/dist/commands/liberica/teams/work-logs/list.js.map +1 -0
- package/dist/commands/liberica/teams/work-logs/update.d.ts +3 -0
- package/dist/commands/liberica/teams/work-logs/update.d.ts.map +1 -0
- package/dist/commands/liberica/teams/work-logs/update.js +105 -0
- package/dist/commands/liberica/teams/work-logs/update.js.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/batch-delete.d.ts +3 -0
- package/dist/commands/liberica/transfer-in-forms/batch-delete.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/batch-delete.js +147 -0
- package/dist/commands/liberica/transfer-in-forms/batch-delete.js.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/batch-review.d.ts +3 -0
- package/dist/commands/liberica/transfer-in-forms/batch-review.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/batch-review.js +146 -0
- package/dist/commands/liberica/transfer-in-forms/batch-review.js.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/batch-unreview.d.ts +3 -0
- package/dist/commands/liberica/transfer-in-forms/batch-unreview.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/batch-unreview.js +147 -0
- package/dist/commands/liberica/transfer-in-forms/batch-unreview.js.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/create.d.ts +3 -0
- package/dist/commands/liberica/transfer-in-forms/create.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/create.js +168 -0
- package/dist/commands/liberica/transfer-in-forms/create.js.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/get.d.ts +3 -0
- package/dist/commands/liberica/transfer-in-forms/get.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/get.js +94 -0
- package/dist/commands/liberica/transfer-in-forms/get.js.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/index.d.ts +3 -0
- package/dist/commands/liberica/transfer-in-forms/index.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/index.js +21 -0
- package/dist/commands/liberica/transfer-in-forms/index.js.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/list.d.ts +3 -0
- package/dist/commands/liberica/transfer-in-forms/list.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/list.js +94 -0
- package/dist/commands/liberica/transfer-in-forms/list.js.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/update.d.ts +3 -0
- package/dist/commands/liberica/transfer-in-forms/update.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-in-forms/update.js +206 -0
- package/dist/commands/liberica/transfer-in-forms/update.js.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/batch-delete.d.ts +3 -0
- package/dist/commands/liberica/transfer-out-forms/batch-delete.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/batch-delete.js +80 -0
- package/dist/commands/liberica/transfer-out-forms/batch-delete.js.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/batch-review.d.ts +3 -0
- package/dist/commands/liberica/transfer-out-forms/batch-review.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/batch-review.js +142 -0
- package/dist/commands/liberica/transfer-out-forms/batch-review.js.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/batch-unreview.d.ts +3 -0
- package/dist/commands/liberica/transfer-out-forms/batch-unreview.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/batch-unreview.js +53 -0
- package/dist/commands/liberica/transfer-out-forms/batch-unreview.js.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/create.d.ts +3 -0
- package/dist/commands/liberica/transfer-out-forms/create.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/create.js +191 -0
- package/dist/commands/liberica/transfer-out-forms/create.js.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/get.d.ts +3 -0
- package/dist/commands/liberica/transfer-out-forms/get.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/get.js +87 -0
- package/dist/commands/liberica/transfer-out-forms/get.js.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/index.d.ts +3 -0
- package/dist/commands/liberica/transfer-out-forms/index.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/index.js +21 -0
- package/dist/commands/liberica/transfer-out-forms/index.js.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/list.d.ts +3 -0
- package/dist/commands/liberica/transfer-out-forms/list.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/list.js +118 -0
- package/dist/commands/liberica/transfer-out-forms/list.js.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/update.d.ts +3 -0
- package/dist/commands/liberica/transfer-out-forms/update.d.ts.map +1 -0
- package/dist/commands/liberica/transfer-out-forms/update.js +197 -0
- package/dist/commands/liberica/transfer-out-forms/update.js.map +1 -0
- package/dist/core/api/client.d.ts +59 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +1106 -136
- package/dist/core/api/client.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/material.d.ts +1 -1
- package/dist/types/material.d.ts.map +1 -1
- package/dist/types/mould-stock-in.d.ts +70 -0
- package/dist/types/mould-stock-in.d.ts.map +1 -0
- package/dist/types/mould-stock-in.js +3 -0
- package/dist/types/mould-stock-in.js.map +1 -0
- package/dist/types/mould.d.ts +61 -0
- package/dist/types/mould.d.ts.map +1 -0
- package/dist/types/mould.js +2 -0
- package/dist/types/mould.js.map +1 -0
- package/dist/types/team-issue.d.ts +87 -0
- package/dist/types/team-issue.d.ts.map +1 -0
- package/dist/types/team-issue.js +2 -0
- package/dist/types/team-issue.js.map +1 -0
- package/dist/types/team-project.d.ts +68 -0
- package/dist/types/team-project.d.ts.map +1 -0
- package/dist/types/team-project.js +2 -0
- package/dist/types/team-project.js.map +1 -0
- package/dist/types/team-task.d.ts +91 -0
- package/dist/types/team-task.d.ts.map +1 -0
- package/dist/types/team-task.js +2 -0
- package/dist/types/team-task.js.map +1 -0
- package/dist/types/team-work-log.d.ts +81 -0
- package/dist/types/team-work-log.d.ts.map +1 -0
- package/dist/types/team-work-log.js +2 -0
- package/dist/types/team-work-log.js.map +1 -0
- package/dist/types/transfer-in-form.d.ts +242 -0
- package/dist/types/transfer-in-form.d.ts.map +1 -0
- package/dist/types/transfer-in-form.js +2 -0
- package/dist/types/transfer-in-form.js.map +1 -0
- package/dist/types/transfer-out-form.d.ts +252 -0
- package/dist/types/transfer-out-form.d.ts.map +1 -0
- package/dist/types/transfer-out-form.js +4 -0
- package/dist/types/transfer-out-form.js.map +1 -0
- package/docs/commands/liberica/teams/issues/close.md +161 -0
- package/docs/commands/liberica/teams/issues/create.md +212 -0
- package/docs/commands/liberica/teams/issues/delete.md +179 -0
- package/docs/commands/liberica/teams/issues/get.md +167 -0
- package/docs/commands/liberica/teams/issues/list.md +182 -0
- package/docs/commands/liberica/teams/issues/tests-design.md +341 -0
- package/docs/commands/liberica/teams/issues/update.md +202 -0
- package/docs/commands/liberica/teams/projects/create.md +174 -0
- package/docs/commands/liberica/teams/projects/delete.md +180 -0
- package/docs/commands/liberica/teams/projects/get.md +150 -0
- package/docs/commands/liberica/teams/projects/list.md +179 -0
- package/docs/commands/liberica/teams/projects/update.md +175 -0
- package/docs/commands/liberica/teams/tasks/create.md +163 -0
- package/docs/commands/liberica/teams/tasks/delete.md +109 -0
- package/docs/commands/liberica/teams/tasks/get.md +121 -0
- package/docs/commands/liberica/teams/tasks/list.md +148 -0
- package/docs/commands/liberica/teams/tasks/update.md +158 -0
- package/docs/commands/liberica/teams/work-logs/create.md +151 -0
- package/docs/commands/liberica/teams/work-logs/delete.md +130 -0
- package/docs/commands/liberica/teams/work-logs/get.md +131 -0
- package/docs/commands/liberica/teams/work-logs/list.md +153 -0
- package/docs/commands/liberica/teams/work-logs/update.md +150 -0
- package/docs/commands/liberica/transfer-in-forms/batch-delete.md +157 -0
- package/docs/commands/liberica/transfer-in-forms/batch-review.md +157 -0
- package/docs/commands/liberica/transfer-in-forms/batch-unreview.md +157 -0
- package/docs/commands/liberica/transfer-in-forms/create.md +220 -0
- package/docs/commands/liberica/transfer-in-forms/get.md +221 -0
- package/docs/commands/liberica/transfer-in-forms/list.md +242 -0
- package/docs/commands/liberica/transfer-in-forms/update.md +185 -0
- package/docs/commands/liberica/transfer-out-forms/batch-delete.md +187 -0
- package/docs/commands/liberica/transfer-out-forms/batch-review.md +157 -0
- package/docs/commands/liberica/transfer-out-forms/batch-unreview.md +157 -0
- package/docs/commands/liberica/transfer-out-forms/create.md +280 -0
- package/docs/commands/liberica/transfer-out-forms/get.md +211 -0
- package/docs/commands/liberica/transfer-out-forms/list.md +233 -0
- package/docs/commands/liberica/transfer-out-forms/update.md +286 -0
- package/package.json +1 -1
- package/src/commands/liberica/index.ts +10 -1
- package/src/commands/liberica/materials/create.ts +13 -5
- package/src/commands/liberica/materials/update.ts +1 -1
- package/src/commands/liberica/mould/get.ts +111 -0
- package/src/commands/liberica/mould/index.ts +17 -0
- package/src/commands/liberica/mould/list.ts +157 -0
- package/src/commands/liberica/mould/set-status.ts +99 -0
- package/src/commands/liberica/mould/stock-in.ts +165 -0
- package/src/commands/liberica/teams/index.ts +17 -0
- package/src/commands/liberica/teams/issues/close.ts +104 -0
- package/src/commands/liberica/teams/issues/create.ts +254 -0
- package/src/commands/liberica/teams/issues/delete.ts +58 -0
- package/src/commands/liberica/teams/issues/get.ts +78 -0
- package/src/commands/liberica/teams/issues/index.ts +21 -0
- package/src/commands/liberica/teams/issues/list.ts +144 -0
- package/src/commands/liberica/teams/issues/update.ts +141 -0
- package/src/commands/liberica/teams/projects/create.ts +159 -0
- package/src/commands/liberica/teams/projects/delete.ts +58 -0
- package/src/commands/liberica/teams/projects/get.ts +87 -0
- package/src/commands/liberica/teams/projects/index.ts +19 -0
- package/src/commands/liberica/teams/projects/list.ts +147 -0
- package/src/commands/liberica/teams/projects/update.ts +117 -0
- package/src/commands/liberica/teams/tasks/create.ts +102 -0
- package/src/commands/liberica/teams/tasks/delete.ts +92 -0
- package/src/commands/liberica/teams/tasks/get.ts +64 -0
- package/src/commands/liberica/teams/tasks/index.ts +19 -0
- package/src/commands/liberica/teams/tasks/list.ts +102 -0
- package/src/commands/liberica/teams/tasks/update.ts +122 -0
- package/src/commands/liberica/teams/work-logs/create.ts +204 -0
- package/src/commands/liberica/teams/work-logs/delete.ts +58 -0
- package/src/commands/liberica/teams/work-logs/get.ts +87 -0
- package/src/commands/liberica/teams/work-logs/index.ts +19 -0
- package/src/commands/liberica/teams/work-logs/list.ts +141 -0
- package/src/commands/liberica/teams/work-logs/update.ts +120 -0
- package/src/commands/liberica/transfer-in-forms/batch-delete.ts +152 -0
- package/src/commands/liberica/transfer-in-forms/batch-review.ts +151 -0
- package/src/commands/liberica/transfer-in-forms/batch-unreview.ts +152 -0
- package/src/commands/liberica/transfer-in-forms/create.ts +179 -0
- package/src/commands/liberica/transfer-in-forms/get.ts +107 -0
- package/src/commands/liberica/transfer-in-forms/index.ts +23 -0
- package/src/commands/liberica/transfer-in-forms/list.ts +97 -0
- package/src/commands/liberica/transfer-in-forms/update.ts +213 -0
- package/src/commands/liberica/transfer-out-forms/batch-delete.ts +83 -0
- package/src/commands/liberica/transfer-out-forms/batch-review.ts +148 -0
- package/src/commands/liberica/transfer-out-forms/batch-unreview.ts +56 -0
- package/src/commands/liberica/transfer-out-forms/create.ts +194 -0
- package/src/commands/liberica/transfer-out-forms/get.ts +114 -0
- package/src/commands/liberica/transfer-out-forms/index.ts +23 -0
- package/src/commands/liberica/transfer-out-forms/list.ts +125 -0
- package/src/commands/liberica/transfer-out-forms/update.ts +197 -0
- package/src/core/api/client.ts +1351 -121
- package/src/index.ts +1 -1
- package/src/types/index.ts +7 -0
- package/src/types/material.ts +1 -1
- package/src/types/mould-stock-in.ts +82 -0
- package/src/types/mould.ts +74 -0
- package/src/types/team-issue.ts +94 -0
- package/src/types/team-project.ts +74 -0
- package/src/types/team-task.ts +98 -0
- package/src/types/team-work-log.ts +87 -0
- package/src/types/transfer-in-form.ts +265 -0
- 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).
|