mirror of
https://github.com/larksuite/cli.git
synced 2026-07-03 14:02:43 +08:00
8.8 KiB
8.8 KiB
Task CLI E2E Coverage
Metrics
- Denominator: 29 leaf commands
- Covered: 14
- Coverage: 48.3%
Summary
- TestTask_StatusWorkflow: creates a task via
task +create, then provestask +complete,task tasks get, andtask +reopenthroughcomplete,get completed task,reopen, andget reopened task; assertsstatusflips betweendoneandtodoandcompleted_atis set then cleared. - TestTask_ReminderWorkflow: creates a task with a due time via
task +create, then provestask +reminderandtask tasks getthroughset reminder,get task with reminder,remove reminder, andget task without reminder; assertsrelative_fire_minute=30, reminder id presence, and reminder removal. - TestTask_CommentWorkflow: creates a task via
task +create, runscomment, and asserts the returned comment id is non-empty; this is the direct proof fortask +comment. - TestTask_UpdateWorkflow: creates a task as
--as user, provestask +updateandtask tasks patchthrough repeated read-after-writetask tasks get, then completes it viatask +completeand verifies the completed task state directly. - TestTask_TasklistWorkflowAsBot: runs
create tasklist with task, thenget tasklist,list tasklist tasks, andget task; provestask +tasklist-create,task tasklists get,task tasklists tasks, andtask tasks getwith seeded task payload and task-to-tasklist linkage. - TestTask_TasklistWorkflowAsUser: creates a tasklist as
--as user, patches its name throughtask tasklists patch, then proves bothtask tasklists getandtask tasklists listreturn the patched tasklist. - TestTask_TasklistAddTaskWorkflow: creates a standalone tasklist and task, runs
add task to tasklist, thenlist tasklist tasksandget task with tasklist link; provestask +tasklist-task-add,task tasklists tasks, andtask tasks get, including no failed tasks in the add response. - Cleanup path note: workflow-created tasks and tasklists are deleted through direct
task tasks delete/task tasklists deletecleanup paths inhelpers_test.go::createTask,helpers_test.go::createTasklist,tasklist_workflow_test.go::TestTask_TasklistWorkflowAsBot, andtasklist_workflow_test.go::TestTask_TasklistWorkflowAsUser, but those cleanup-only executions are not counted as command coverage because no testcase asserts delete behavior as the primary proof surface. - Blocked area: assignee, follower, and tasklist member mutations still require stable real-user
open_idfixtures; the current suite is bot-safe only. - Blocked area:
task +get-my-tasksandtask tasks listdid not return the workflow-created user task deterministically in UAT, so they are left uncovered instead of being counted from flaky list visibility. - Blocked area: the remaining user-oriented shortcuts still need deterministic user-owned fixtures or collaborator fixtures beyond the self-owned task created inside the testcase.
- Gap pattern: direct
tasks create/delete/list/patch,tasklists create/delete/list/patch,members *, andsubtasks *APIs still lack deterministic direct-call workflows, so shortcut coverage does not count for those leaf commands.
Command Table
| Status | Cmd | Type | Testcase | Key parameter shapes | Notes / uncovered reason |
|---|---|---|---|---|---|
| ✕ | task +assign | shortcut | none | requires real assignee open_id fixtures; shortcut defaults to --as user |
|
| ✓ | task +comment | shortcut | task_comment_workflow_test.go::TestTask_CommentWorkflow/comment | --task-id; --content |
|
| ✓ | task +complete | shortcut | task_status_workflow_test.go::TestTask_StatusWorkflow/complete | --task-id |
|
| ✓ | task +create | shortcut | task_status_workflow_test.go::TestTask_StatusWorkflow; task_comment_workflow_test.go::TestTask_CommentWorkflow; task_reminder_workflow_test.go::TestTask_ReminderWorkflow; tasklist_add_task_workflow_test.go::TestTask_TasklistAddTaskWorkflow | summary + description; due.timestamp + due.is_all_day |
|
| ✕ | task +followers | shortcut | none | requires real follower open_id fixtures; shortcut defaults to --as user |
|
| ✕ | task +get-my-tasks | shortcut | none | UAT did not return the workflow-created user task deterministically in my-tasks views | |
| ✓ | task +reminder | shortcut | task_reminder_workflow_test.go::TestTask_ReminderWorkflow/set reminder; task_reminder_workflow_test.go::TestTask_ReminderWorkflow/remove reminder | --task-id --set 30m; --task-id --remove |
|
| ✓ | task +reopen | shortcut | task_status_workflow_test.go::TestTask_StatusWorkflow/reopen | --task-id |
|
| ✓ | task +tasklist-create | shortcut | tasklist_workflow_test.go::TestTask_TasklistWorkflowAsBot/create tasklist with task as bot; tasklist_workflow_test.go::TestTask_TasklistWorkflowAsUser/create tasklist as user; tasklist_add_task_workflow_test.go::TestTask_TasklistAddTaskWorkflow | --name only; --name plus task array in --data |
|
| ✕ | task +tasklist-members | shortcut | none | requires real member open_id fixtures to add, remove, or set tasklist members | |
| ✓ | task +tasklist-task-add | shortcut | tasklist_add_task_workflow_test.go::TestTask_TasklistAddTaskWorkflow/add task to tasklist | --tasklist-id; --task-id |
|
| ✓ | task +update | shortcut | task_update_workflow_test.go::TestTask_UpdateWorkflow/update task with shortcut as user | --task-id; --summary; --description |
verified by follow-up task tasks get |
| ✕ | task members add | api | none | requires stable member fixtures and explicit direct API-body assertions | |
| ✕ | task members remove | api | none | requires stable member fixtures and explicit direct API-body assertions | |
| ✕ | task subtasks create | api | none | needs a parent-task workflow plus direct subtask payload assertions | |
| ✕ | task subtasks list | api | none | needs deterministic subtask fixtures created in the same workflow | |
| ✕ | task tasklists add_members | api | none | requires real member open_id fixtures and direct API coverage | |
| ✕ | task tasklists create | api | none | only covered indirectly through task +tasklist-create; no direct API invocation yet |
|
| ✕ | task tasklists delete | api | none | only exercised in parent cleanup; no testcase asserts delete behavior or post-delete state as the primary proof | |
| ✓ | task tasklists get | api | tasklist_workflow_test.go::TestTask_TasklistWorkflowAsBot/get tasklist as bot; tasklist_workflow_test.go::TestTask_TasklistWorkflowAsUser/get patched tasklist as user | tasklist_guid in --params |
|
| ✓ | task tasklists list | api | tasklist_workflow_test.go::TestTask_TasklistWorkflowAsUser/list tasklists and find patched tasklist as user | page_size |
asserts the workflow-created tasklist appears with patched name |
| ✓ | task tasklists patch | api | tasklist_workflow_test.go::TestTask_TasklistWorkflowAsUser/patch tasklist as user | tasklist_guid in --params; name in --data |
verified by follow-up task tasklists get and task tasklists list |
| ✕ | task tasklists remove_members | api | none | requires real member open_id fixtures and direct API coverage | |
| ✓ | task tasklists tasks | api | tasklist_workflow_test.go::TestTask_TasklistWorkflowAsBot/list tasklist tasks as bot; tasklist_add_task_workflow_test.go::TestTask_TasklistAddTaskWorkflow/list tasklist tasks | tasklist_guid; page_size |
|
| ✕ | task tasks create | api | none | only covered indirectly through task +create; no direct API invocation yet |
|
| ✕ | task tasks delete | api | none | only exercised in parent cleanup; no testcase asserts delete behavior or post-delete state as the primary proof | |
| ✓ | task tasks get | api | task_status_workflow_test.go::TestTask_StatusWorkflow/get completed task; task_status_workflow_test.go::TestTask_StatusWorkflow/get reopened task; task_reminder_workflow_test.go::TestTask_ReminderWorkflow/get task with reminder; task_reminder_workflow_test.go::TestTask_ReminderWorkflow/get task without reminder; tasklist_workflow_test.go::TestTask_TasklistWorkflowAsBot/get task as bot; tasklist_add_task_workflow_test.go::TestTask_TasklistAddTaskWorkflow/get task with tasklist link; task_update_workflow_test.go::TestTask_UpdateWorkflow/get created task as user; task_update_workflow_test.go::TestTask_UpdateWorkflow/get task updated by shortcut as user; task_update_workflow_test.go::TestTask_UpdateWorkflow/get task patched by api as user; task_update_workflow_test.go::TestTask_UpdateWorkflow/get completed task as user | task_guid in --params; assert status, reminders, summary, description, and tasklist link |
|
| ✕ | task tasks list | api | none | UAT did not return the workflow-created user task deterministically in list views | |
| ✓ | task tasks patch | api | task_update_workflow_test.go::TestTask_UpdateWorkflow/patch task with api as user | task_guid in --params; summary + description in --data |
verified by follow-up task tasks get |