@@ -98,6 +98,66 @@ func granularSchema(version string) typed.YAMLObject {
98
98
- name: numeric
99
99
type:
100
100
scalar: numeric
101
+ - name: empty
102
+ map:
103
+ elementType:
104
+ scalar: untyped
105
+ list:
106
+ elementType:
107
+ namedType: __untyped_atomic_
108
+ elementRelationship: atomic
109
+ map:
110
+ elementType:
111
+ namedType: __untyped_deduced_
112
+ elementRelationship: separable
113
+ - name: emptyWithPreserveUnknown
114
+ map:
115
+ fields:
116
+ - name: preserveField
117
+ type:
118
+ map:
119
+ elementType:
120
+ scalar: untyped
121
+ list:
122
+ elementType:
123
+ namedType: __untyped_atomic_
124
+ elementRelationship: atomic
125
+ map:
126
+ elementType:
127
+ namedType: __untyped_deduced_
128
+ elementRelationship: separable
129
+ - name: populatedWithPreserveUnknown
130
+ map:
131
+ fields:
132
+ - name: preserveField
133
+ type:
134
+ map:
135
+ fields:
136
+ - name: list
137
+ type:
138
+ namedType: list
139
+ elementType:
140
+ namedType: __untyped_deduced_
141
+ - name: __untyped_atomic_
142
+ scalar: untyped
143
+ list:
144
+ elementType:
145
+ namedType: __untyped_atomic_
146
+ elementRelationship: atomic
147
+ map:
148
+ elementType:
149
+ namedType: __untyped_atomic_
150
+ elementRelationship: atomic
151
+ - name: __untyped_deduced_
152
+ scalar: untyped
153
+ list:
154
+ elementType:
155
+ namedType: __untyped_atomic_
156
+ elementRelationship: atomic
157
+ map:
158
+ elementType:
159
+ namedType: __untyped_deduced_
160
+ elementRelationship: separable
101
161
` , version ))
102
162
}
103
163
@@ -164,6 +224,66 @@ func atomicSchema(version string) typed.YAMLObject {
164
224
- name: numeric
165
225
type:
166
226
scalar: numeric
227
+ - name: empty
228
+ map:
229
+ elementType:
230
+ scalar: untyped
231
+ list:
232
+ elementType:
233
+ namedType: __untyped_atomic_
234
+ elementRelationship: atomic
235
+ map:
236
+ elementType:
237
+ namedType: __untyped_deduced_
238
+ elementRelationship: separable
239
+ - name: emptyWithPreserveUnknown
240
+ map:
241
+ fields:
242
+ - name: preserveField
243
+ type:
244
+ map:
245
+ elementType:
246
+ scalar: untyped
247
+ list:
248
+ elementType:
249
+ namedType: __untyped_atomic_
250
+ elementRelationship: atomic
251
+ map:
252
+ elementType:
253
+ namedType: __untyped_deduced_
254
+ elementRelationship: separable
255
+ - name: populatedWithPreserveUnknown
256
+ map:
257
+ fields:
258
+ - name: preserveField
259
+ type:
260
+ map:
261
+ fields:
262
+ - name: list
263
+ type:
264
+ namedType: list
265
+ elementType:
266
+ namedType: __untyped_deduced_
267
+ - name: __untyped_atomic_
268
+ scalar: untyped
269
+ list:
270
+ elementType:
271
+ namedType: __untyped_atomic_
272
+ elementRelationship: atomic
273
+ map:
274
+ elementType:
275
+ namedType: __untyped_atomic_
276
+ elementRelationship: atomic
277
+ - name: __untyped_deduced_
278
+ scalar: untyped
279
+ list:
280
+ elementType:
281
+ namedType: __untyped_atomic_
282
+ elementRelationship: atomic
283
+ map:
284
+ elementType:
285
+ namedType: __untyped_deduced_
286
+ elementRelationship: separable
167
287
` , version ))
168
288
}
169
289
@@ -257,6 +377,55 @@ unchanged: {}
257
377
_P ("unchanged" ),
258
378
),
259
379
fixedFields : nil , // indicates no change
380
+ }, {
381
+ name : "deduced" ,
382
+ rootTypeName : "empty" ,
383
+ oldSchema : atomicSchema ("v1" ),
384
+ newSchema : granularSchema ("v1" ),
385
+ liveObject : basicLiveObject ,
386
+ oldFields : _NS (
387
+ _P ("struct" ),
388
+ _P ("list" ),
389
+ _P ("objectList" ),
390
+ _P ("unchanged" , "numeric" ),
391
+ ),
392
+ fixedFields : nil , // indicates no change
393
+ }, {
394
+ name : "empty-preserve-unknown" ,
395
+ rootTypeName : "emptyWithPreserveUnknown" ,
396
+ oldSchema : atomicSchema ("v1" ),
397
+ newSchema : granularSchema ("v1" ),
398
+ liveObject : typed .YAMLObject (`
399
+ preserveField:
400
+ arbitrary: abc
401
+ ` ),
402
+ oldFields : _NS (
403
+ _P ("preserveField" ),
404
+ _P ("preserveField" , "arbitrary" ),
405
+ ),
406
+ fixedFields : nil , // indicates no change
407
+ }, {
408
+ name : "populated-preserve-unknown" ,
409
+ rootTypeName : "populatedWithPreserveUnknown" ,
410
+ oldSchema : granularSchema ("v1" ),
411
+ newSchema : atomicSchema ("v1" ),
412
+ liveObject : typed .YAMLObject (`
413
+ preserveField:
414
+ arbitrary: abc
415
+ list:
416
+ - one
417
+ ` ),
418
+ oldFields : _NS (
419
+ _P ("preserveField" ),
420
+ _P ("preserveField" , "arbitrary" ),
421
+ _P ("preserveField" , "list" ),
422
+ _P ("preserveField" , "list" , _V ("one" )),
423
+ ),
424
+ fixedFields : _NS (
425
+ _P ("preserveField" ),
426
+ _P ("preserveField" , "arbitrary" ),
427
+ _P ("preserveField" , "list" ),
428
+ ),
260
429
}}
261
430
262
431
func TestReconcileFieldSetWithSchema (t * testing.T ) {
0 commit comments