@@ -133,7 +133,7 @@ func Test_parseToMap(t *testing.T) {
133133
134134 // Test map[string]string
135135 m := make (map [string ]string )
136- err := parseToMap (m , inputMap )
136+ err := parseToMap (reflect . ValueOf ( m ) , inputMap )
137137 require .NoError (t , err )
138138
139139 require .Equal (t , "value2" , m ["key1" ])
@@ -142,7 +142,7 @@ func Test_parseToMap(t *testing.T) {
142142
143143 // Test map[string][]string
144144 m2 := make (map [string ][]string )
145- err = parseToMap (m2 , inputMap )
145+ err = parseToMap (reflect . ValueOf ( m2 ) , inputMap )
146146 require .NoError (t , err )
147147
148148 require .Len (t , m2 ["key1" ], 2 )
@@ -153,8 +153,22 @@ func Test_parseToMap(t *testing.T) {
153153
154154 // Test map[string]any
155155 m3 := make (map [string ]any )
156- err = parseToMap (m3 , inputMap )
157- require .ErrorIs (t , err , ErrMapNotConvertible )
156+ err = parseToMap (reflect .ValueOf (m3 ), inputMap )
157+ require .NoError (t , err )
158+ require .Empty (t , m3 )
159+
160+ var zeroStringMap map [string ]string
161+ err = parseToMap (reflect .ValueOf (& zeroStringMap ).Elem (), inputMap )
162+ require .NoError (t , err )
163+ require .Equal (t , "value2" , zeroStringMap ["key1" ])
164+
165+ var zeroSliceMap map [string ][]string
166+ err = parseToMap (reflect .ValueOf (& zeroSliceMap ).Elem (), inputMap )
167+ require .NoError (t , err )
168+ require .Len (t , zeroSliceMap ["key1" ], 2 )
169+
170+ err = parseToMap (reflect .ValueOf (map [string ]string (nil )), inputMap )
171+ require .ErrorIs (t , err , ErrMapNilDestination )
158172}
159173
160174func Test_FilterFlags (t * testing.T ) {
@@ -384,16 +398,16 @@ func Test_parseToMap_Extended(t *testing.T) {
384398 }
385399
386400 m := make (map [string ]string )
387- err := parseToMap (m , data )
401+ err := parseToMap (reflect . ValueOf ( m ) , data )
388402 require .NoError (t , err )
389403 require .Empty (t , m ["empty" ])
390404
391405 m2 := make (map [string ][]int )
392- err = parseToMap (m2 , data )
406+ err = parseToMap (reflect . ValueOf ( m2 ) , data )
393407 require .ErrorIs (t , err , ErrMapNotConvertible )
394408
395409 m3 := make (map [string ]int )
396- err = parseToMap (m3 , data )
410+ err = parseToMap (reflect . ValueOf ( m3 ) , data )
397411 require .NoError (t , err )
398412}
399413
0 commit comments