Skip to content

Commit 68a0594

Browse files
zeewellZeewell.Yu
authored andcommitted
tests: Add test for omitzero
1 parent f9b1333 commit 68a0594

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

validator_test.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14022,6 +14022,57 @@ func TestOmitNilAndRequired(t *testing.T) {
1402214022
})
1402314023
}
1402414024

14025+
func TestOmitZero(t *testing.T) {
14026+
type (
14027+
OmitEmpty struct {
14028+
Str string `validate:"omitempty,min=10"`
14029+
StrPtr *string `validate:"omitempty,min=10"`
14030+
}
14031+
OmitZero struct {
14032+
Str string `validate:"omitzero,min=10"`
14033+
StrPtr *string `validate:"omitzero,min=10"`
14034+
}
14035+
)
14036+
14037+
var (
14038+
validate = New()
14039+
valid = "this is the long string to pass the validation rule"
14040+
empty = ""
14041+
)
14042+
14043+
t.Run("compare using valid data", func(t *testing.T) {
14044+
err1 := validate.Struct(OmitEmpty{Str: valid, StrPtr: &valid})
14045+
err2 := validate.Struct(OmitZero{Str: valid, StrPtr: &valid})
14046+
14047+
Equal(t, err1, nil)
14048+
Equal(t, err2, nil)
14049+
})
14050+
14051+
t.Run("compare fully empty omitempty and omitzero", func(t *testing.T) {
14052+
err1 := validate.Struct(OmitEmpty{})
14053+
err2 := validate.Struct(OmitZero{})
14054+
14055+
Equal(t, err1, nil)
14056+
Equal(t, err2, nil)
14057+
})
14058+
14059+
t.Run("compare with zero value", func(t *testing.T) {
14060+
err1 := validate.Struct(OmitEmpty{Str: "", StrPtr: nil})
14061+
err2 := validate.Struct(OmitZero{Str: "", StrPtr: nil})
14062+
14063+
Equal(t, err1, nil)
14064+
Equal(t, err2, nil)
14065+
})
14066+
14067+
t.Run("compare with empty value", func(t *testing.T) {
14068+
err1 := validate.Struct(OmitEmpty{Str: empty, StrPtr: &empty})
14069+
err2 := validate.Struct(OmitZero{Str: empty, StrPtr: &empty})
14070+
14071+
AssertError(t, err1, "OmitEmpty.StrPtr", "OmitEmpty.StrPtr", "StrPtr", "StrPtr", "min")
14072+
Equal(t, err2, nil)
14073+
})
14074+
}
14075+
1402514076
func TestPrivateFieldsStruct(t *testing.T) {
1402614077
type tc struct {
1402714078
stct interface{}

0 commit comments

Comments
 (0)