MCPcopy Index your code
hub / github.com/go-openapi/jsonpointer / TestDashToken_SetAppend

Function TestDashToken_SetAppend

dash_token_test.go:83–172  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

81}
82
83func TestDashToken_SetAppend(t *testing.T) {
84 t.Parallel()
85
86 t.Run("append into slice nested in a map (in place)", func(t *testing.T) {
87 doc := map[string]any{"arr": []any{1, 2}}
88 p, err := New("/arr/-")
89 require.NoError(t, err)
90
91 out, err := p.Set(doc, 3)
92 require.NoError(t, err)
93
94 // returned doc is the same map reference
95 assert.Equal(t, doc, out)
96
97 // map's slice was rebound in place
98 arr, ok := doc["arr"].([]any)
99 require.True(t, ok)
100 assert.Equal(t, []any{1, 2, 3}, arr)
101 })
102
103 t.Run("append into top-level slice passed by value (return value is source of truth)", func(t *testing.T) {
104 doc := []int{1, 2}
105 p, err := New("/-")
106 require.NoError(t, err)
107
108 out, err := p.Set(doc, 3)
109 require.NoError(t, err)
110
111 // returned doc has the appended element
112 outSlice, ok := out.([]int)
113 require.True(t, ok)
114 assert.Equal(t, []int{1, 2, 3}, outSlice)
115 })
116
117 t.Run("append into top-level *[]T (in place)", func(t *testing.T) {
118 doc := []int{1, 2}
119 p, err := New("/-")
120 require.NoError(t, err)
121
122 _, err = p.Set(&doc, 3)
123 require.NoError(t, err)
124
125 // caller's slice variable now has the appended element
126 assert.Equal(t, []int{1, 2, 3}, doc)
127 })
128
129 t.Run("append into struct slice field reached via pointer (in place)", func(t *testing.T) {
130 type holder struct {
131 Arr []int `json:"arr"`
132 }
133 doc := &holder{Arr: []int{1, 2}}
134 p, err := New("/arr/-")
135 require.NoError(t, err)
136
137 _, err = p.Set(doc, 3)
138 require.NoError(t, err)
139
140 assert.Equal(t, []int{1, 2, 3}, doc.Arr)

Callers

nothing calls this directly

Calls 3

NewFunction · 0.85
SetForTokenFunction · 0.85
SetMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…