chore: add more tests (#4949)

This commit is contained in:
Kevin Wan
2025-06-13 22:10:08 +08:00
committed by GitHub
parent 4cacc4d9d3
commit 0ba86b1849
3 changed files with 30 additions and 6 deletions

View File

@@ -622,13 +622,19 @@ func (u *Unmarshaler) processFieldNotFromString(fieldType reflect.Type, value re
return u.fillSliceFromString(fieldType, value, mapValue, fullName)
case valueKind == reflect.String && derefedFieldType == durationType:
v, ok := mapValue.(string)
if !ok {
return fmt.Errorf("unexpected type %T, expected a string value for field %s", mapValue, fullName)
v, err := convertToString(mapValue, fullName)
if err != nil {
return err
}
return fillDurationValue(fieldType, value, v)
case valueKind == reflect.String && typeKind == reflect.Struct && u.implementsUnmarshaler(fieldType):
return u.fillUnmarshalerStruct(fieldType, value, mapValue.(string))
v, err := convertToString(mapValue, fullName)
if err != nil {
return err
}
return u.fillUnmarshalerStruct(fieldType, value, v)
default:
return u.processFieldPrimitive(fieldType, value, mapValue, opts, fullName)
}