MCPcopy Create free account
hub / github.com/openclaw/gogcli / TestDecodeRanges

Function TestDecodeRanges

internal/sheetsvalues/values_test.go:55–84  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

53}
54
55func TestDecodeRanges(t *testing.T) {
56 ranges, err := DecodeRanges([]byte(`[{"range":"Sheet1\\!A1","values":[["a"]]}]`))
57 if err != nil {
58 t.Fatalf("DecodeRanges() error = %v", err)
59 }
60
61 if len(ranges) != 1 || ranges[0].Range != "Sheet1!A1" {
62 t.Fatalf("ranges = %#v", ranges)
63 }
64
65 for _, tc := range []struct {
66 name string
67 data string
68 want string
69 }{
70 {name: "invalid json", data: `nope`, want: "invalid JSON data"},
71 {name: "empty array", data: `[]`, want: "at least one value range"},
72 {name: "null range", data: `[null]`, want: "range 0 is null"},
73 {name: "empty range", data: `[{"range":"","values":[["a"]]}]`, want: "empty range"},
74 {name: "missing values", data: `[{"range":"Sheet1!A1"}]`, want: "empty values"},
75 {name: "empty values", data: `[{"range":"Sheet1!A1","values":[]}]`, want: "empty values"},
76 } {
77 t.Run(tc.name, func(t *testing.T) {
78 _, gotErr := DecodeRanges([]byte(tc.data))
79 if gotErr == nil || !strings.Contains(gotErr.Error(), tc.want) {
80 t.Fatalf("error = %v, want %q", gotErr, tc.want)
81 }
82 })
83 }
84}

Callers

nothing calls this directly

Calls 3

DecodeRangesFunction · 0.85
RunMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected