MCPcopy Index your code
hub / github.com/larksuite/cli / TestBuildTaskCreateBody_StructuredErrors

Function TestBuildTaskCreateBody_StructuredErrors

shortcuts/task/task_body_test.go:18–84  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

16)
17
18func TestBuildTaskCreateBody_StructuredErrors(t *testing.T) {
19 tests := []struct {
20 name string
21 data string
22 summary string
23 due string
24 wantSubstr string
25 }{
26 {
27 name: "invalid JSON data returns validation error",
28 data: "not-json",
29 summary: "test",
30 wantSubstr: "--data must be a valid JSON object",
31 },
32 {
33 name: "missing summary returns validation error",
34 data: "",
35 summary: "",
36 wantSubstr: "task summary is required",
37 },
38 {
39 name: "invalid due time returns validation error",
40 data: "",
41 summary: "test task",
42 due: "not-a-valid-time",
43 wantSubstr: "failed to parse due time",
44 },
45 }
46
47 for _, tt := range tests {
48 t.Run(tt.name, func(t *testing.T) {
49 cmd := &cobra.Command{}
50 cmd.Flags().String("data", tt.data, "")
51 cmd.Flags().String("summary", tt.summary, "")
52 cmd.Flags().String("description", "", "")
53 cmd.Flags().String("assignee", "", "")
54 cmd.Flags().String("follower", "", "")
55 cmd.Flags().String("due", tt.due, "")
56 cmd.Flags().String("tasklist-id", "", "")
57 cmd.Flags().String("idempotency-key", "", "")
58
59 runtime := &common.RuntimeContext{Cmd: cmd}
60 _, err := buildTaskCreateBody(runtime)
61 if err == nil {
62 t.Fatal("expected error, got nil")
63 }
64
65 var ve *errs.ValidationError
66 if !errors.As(err, &ve) {
67 t.Fatalf("error type = %T, want *errs.ValidationError; error = %v", err, err)
68 }
69 p, ok := errs.ProblemOf(err)
70 if !ok {
71 t.Fatalf("ProblemOf(%T) returned !ok", err)
72 }
73 if p.Subtype != errs.SubtypeInvalidArgument {
74 t.Errorf("subtype = %q, want %q", p.Subtype, errs.SubtypeInvalidArgument)
75 }

Callers

nothing calls this directly

Calls 8

ProblemOfFunction · 0.92
ExitCodeOfFunction · 0.92
buildTaskCreateBodyFunction · 0.85
AsMethod · 0.80
RunMethod · 0.65
StringMethod · 0.45
ContainsMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected