@@ -217,6 +217,18 @@ describe('VItemGroup', () => {
217
217
wrapper . vm . updateSingle ( 'foo' )
218
218
expect ( wrapper . vm . internalValue ) . toBeUndefined ( )
219
219
220
+ // Toggling on and off object references
221
+ wrapper . vm . updateSingle ( { foo : 'foo' } )
222
+ expect ( wrapper . vm . internalValue ) . toEqual ( { foo : 'foo' } )
223
+ wrapper . vm . updateSingle ( { foo : 'foo' } )
224
+ expect ( wrapper . vm . internalValue ) . toBeUndefined ( )
225
+
226
+ // Toggling on and off with custom comparator
227
+ wrapper . setProps ( { valueComparator : ( a : any , b : any ) => a ?. startsWith ( b ?. [ 0 ] ) , value : 'foo' } )
228
+ expect ( wrapper . vm . internalValue ) . toBe ( 'foo' )
229
+ wrapper . vm . updateSingle ( 'foobar' )
230
+ expect ( wrapper . vm . internalValue ) . toBeUndefined ( )
231
+
220
232
wrapper . setProps ( { mandatory : true } )
221
233
222
234
// Toggling off single mandatory
@@ -237,6 +249,12 @@ describe('VItemGroup', () => {
237
249
wrapper . vm . updateMultiple ( 'foo' )
238
250
expect ( wrapper . vm . internalValue ) . toEqual ( [ ] )
239
251
252
+ // Toggling on and off object references
253
+ wrapper . vm . updateMultiple ( { foo : 'foo' } )
254
+ expect ( wrapper . vm . internalValue ) . toEqual ( [ { foo : 'foo' } ] )
255
+ wrapper . vm . updateMultiple ( { foo : 'foo' } )
256
+ expect ( wrapper . vm . internalValue ) . toEqual ( [ ] )
257
+
240
258
wrapper . setProps ( { mandatory : true } )
241
259
242
260
// Toggling off single mandatory
@@ -256,6 +274,17 @@ describe('VItemGroup', () => {
256
274
expect ( wrapper . vm . internalValue ) . toEqual ( [ 'foo' , 'bar' , 'fizz' ] )
257
275
} )
258
276
277
+ it ( 'should update a multiple item group with a custom comparator' , ( ) => {
278
+ const wrapper = mountFunction ( {
279
+ propsData : { multiple : true } ,
280
+ } )
281
+
282
+ wrapper . setProps ( { valueComparator : ( a : any , b : any ) => a ?. startsWith ( b ?. [ 0 ] ) , value : [ 'foo' ] } )
283
+ expect ( wrapper . vm . internalValue ) . toEqual ( [ 'foo' ] )
284
+ wrapper . vm . updateMultiple ( 'foobar' )
285
+ expect ( wrapper . vm . internalValue ) . toEqual ( [ ] )
286
+ } )
287
+
259
288
it ( 'should update value if mandatory and dynamic items' , async ( ) => {
260
289
const wrapper = mountFunction ( {
261
290
propsData : {
0 commit comments