@@ -155,7 +155,12 @@ var fieldsetCases = []fieldsetTestCase{{
155
155
_P ("setStr" , _V ("b" )),
156
156
_P ("setStr" , _V ("c" )),
157
157
)},
158
- {`{"setBool":[true,false]}` , _NS (
158
+ {`{"setStr":["a","b","c","a","b","c","c"]}` , _NS (
159
+ _P ("setStr" , _V ("a" )),
160
+ _P ("setStr" , _V ("b" )),
161
+ _P ("setStr" , _V ("c" )),
162
+ )},
163
+ {`{"setBool":[true,false,true]}` , _NS (
159
164
_P ("setBool" , _V (true )),
160
165
_P ("setBool" , _V (false )),
161
166
)},
@@ -244,6 +249,16 @@ var fieldsetCases = []fieldsetTestCase{{
244
249
_P ("list" , _KBF ("key" , "b" , "id" , 1 ), "key" ),
245
250
_P ("list" , _KBF ("key" , "b" , "id" , 1 ), "id" ),
246
251
)},
252
+ {`{"list":[{"key":"a","id":1,"nv":2},{"key":"a","id":2,"nv":3},{"key":"b","id":1},{"key":"a","id":2,"bv":true}]}` , _NS (
253
+ _P ("list" , _KBF ("key" , "a" , "id" , 1 )),
254
+ _P ("list" , _KBF ("key" , "a" , "id" , 1 ), "key" ),
255
+ _P ("list" , _KBF ("key" , "a" , "id" , 1 ), "id" ),
256
+ _P ("list" , _KBF ("key" , "a" , "id" , 1 ), "nv" ),
257
+ _P ("list" , _KBF ("key" , "a" , "id" , 2 )),
258
+ _P ("list" , _KBF ("key" , "b" , "id" , 1 )),
259
+ _P ("list" , _KBF ("key" , "b" , "id" , 1 ), "key" ),
260
+ _P ("list" , _KBF ("key" , "b" , "id" , 1 ), "id" ),
261
+ )},
247
262
{`{"atomicList":["a","a","a"]}` , _NS (_P ("atomicList" ))},
248
263
},
249
264
}}
@@ -257,9 +272,9 @@ func (tt fieldsetTestCase) test(t *testing.T) {
257
272
v := v
258
273
t .Run (fmt .Sprintf ("%v-%v" , tt .name , i ), func (t * testing.T ) {
259
274
t .Parallel ()
260
- tv , err := parser .Type (tt .rootTypeName ).FromYAML (v .object )
275
+ tv , err := parser .Type (tt .rootTypeName ).FromYAML (v .object , typed . AllowDuplicates )
261
276
if err != nil {
262
- t .Errorf ("failed to parse object: %v" , err )
277
+ t .Fatalf ("failed to parse object: %v" , err )
263
278
}
264
279
fs , err := tv .ToFieldSet ()
265
280
if err != nil {
0 commit comments