MCPcopy
hub / github.com/larksuite/cli / findTaskInTasklist

Function findTaskInTasklist

tests/cli_e2e/task/helpers_test.go:77–118  ·  view source on GitHub ↗
(t *testing.T, ctx context.Context, tasklistGUID string, taskGUID string)

Source from the content-addressed store, hash-verified

75}
76
77func findTaskInTasklist(t *testing.T, ctx context.Context, tasklistGUID string, taskGUID string) gjson.Result {
78 t.Helper()
79
80 require.NotEmpty(t, tasklistGUID, "tasklist GUID is required")
81 require.NotEmpty(t, taskGUID, "task GUID is required")
82
83 pageToken := ""
84 seenPageTokens := map[string]struct{}{}
85 for {
86 params := map[string]any{
87 "tasklist_guid": tasklistGUID,
88 "page_size": 50,
89 }
90 if pageToken != "" {
91 if _, seen := seenPageTokens[pageToken]; seen {
92 t.Fatalf("tasklist task pagination loop detected for tasklist %q, repeated page_token %q", tasklistGUID, pageToken)
93 }
94 seenPageTokens[pageToken] = struct{}{}
95 params["page_token"] = pageToken
96 }
97
98 result, err := clie2e.RunCmd(ctx, clie2e.Request{
99 Args: []string{"task", "tasklists", "tasks"},
100 DefaultAs: "bot",
101 Params: params,
102 })
103 require.NoError(t, err)
104 result.AssertExitCode(t, 0)
105 result.AssertStdoutStatus(t, true)
106
107 taskItem := gjson.Get(result.Stdout, `data.items.#(guid=="`+taskGUID+`")`)
108 if taskItem.Exists() {
109 return taskItem
110 }
111
112 hasMore := gjson.Get(result.Stdout, "data.has_more").Bool()
113 pageToken = gjson.Get(result.Stdout, "data.page_token").String()
114 if !hasMore || pageToken == "" {
115 t.Fatalf("task %q not found in tasklist %q pages, last stdout:\n%s", taskGUID, tasklistGUID, result.Stdout)
116 }
117 }
118}

Calls 5

AssertExitCodeMethod · 0.80
AssertStdoutStatusMethod · 0.80
GetMethod · 0.65
BoolMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected