@@ -217,6 +217,18 @@ describe('VItemGroup', () => {
217217 wrapper . vm . updateSingle ( 'foo' )
218218 expect ( wrapper . vm . internalValue ) . toBeUndefined ( )
219219
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+
220232 wrapper . setProps ( { mandatory : true } )
221233
222234 // Toggling off single mandatory
@@ -237,6 +249,12 @@ describe('VItemGroup', () => {
237249 wrapper . vm . updateMultiple ( 'foo' )
238250 expect ( wrapper . vm . internalValue ) . toEqual ( [ ] )
239251
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+
240258 wrapper . setProps ( { mandatory : true } )
241259
242260 // Toggling off single mandatory
@@ -256,6 +274,17 @@ describe('VItemGroup', () => {
256274 expect ( wrapper . vm . internalValue ) . toEqual ( [ 'foo' , 'bar' , 'fizz' ] )
257275 } )
258276
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+
259288 it ( 'should update value if mandatory and dynamic items' , async ( ) => {
260289 const wrapper = mountFunction ( {
261290 propsData : {
0 commit comments