@@ -192,10 +192,19 @@ func TestInitDefaults_initStructSlice(t *testing.T) {
192192
193193 u := & User {}
194194 err := structs .Init (u )
195+ // dump.P(u)
196+ assert .NoErr (t , err )
197+ assert .Empty (t , u .Extra )
198+
199+ u = & User {Extra : []ExtraDefault {{City : "sh" }, {Github : "some url" }}}
200+ err = structs .Init (u )
195201 dump .P (u )
196202 assert .NoErr (t , err )
197203 assert .NotEmpty (t , u .Extra )
198- assert .Eq (t , "chengdu" , u .Extra [0 ].City )
204+ assert .Eq (t , "sh" , u .Extra [0 ].City )
205+ assert .NotEmpty (t , u .Extra [0 ].Github )
206+ assert .Eq (t , "chengdu" , u .Extra [1 ].City )
207+ assert .Eq (t , "some url" , u .Extra [1 ].Github )
199208
200209 // test for slice struct field
201210 type User1 struct {
@@ -208,15 +217,15 @@ func TestInitDefaults_initStructSlice(t *testing.T) {
208217 err = structs .Init (u1 )
209218 dump .P (u1 )
210219 assert .NoErr (t , err )
211- assert .NotEmpty (t , u1 .Extra )
212- assert .Eq (t , "chengdu" , u1 .Extra [0 ].City )
220+ assert .Empty (t , u1 .Extra )
213221
214222 // test for not empty slice struct field
215223 u2 := & User1 {Extra : []* ExtraDefault {{City : "sh" }}}
216224 err = structs .Init (u2 )
217225 // dump.P(u2)
218226 assert .NoErr (t , err )
219227 assert .Eq (t , "sh" , u2 .Extra [0 ].City )
228+ assert .NotEmpty (t , "sh" , u2 .Extra [0 ].Github )
220229}
221230
222231func TestInitDefaults_ptrField (t * testing.T ) {
0 commit comments