mirror of
https://github.com/Fishwaldo/validator.git
synced 2025-03-15 11:41:32 +00:00
This commit is contained in:
parent
f2d3ff7f98
commit
af72f63d39
2 changed files with 33 additions and 0 deletions
|
@ -355,6 +355,10 @@ OUTER:
|
|||
v.ct = ct
|
||||
|
||||
if ct.fn(ctx, v) {
|
||||
if ct.isBlockEnd {
|
||||
ct = ct.next
|
||||
continue OUTER
|
||||
}
|
||||
|
||||
// drain rest of the 'or' values, then continue or leave
|
||||
for {
|
||||
|
@ -368,6 +372,11 @@ OUTER:
|
|||
if ct.typeof != typeOr {
|
||||
continue OUTER
|
||||
}
|
||||
|
||||
if ct.isBlockEnd {
|
||||
ct = ct.next
|
||||
continue OUTER
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11790,3 +11790,27 @@ func TestCreditCardFormatValidation(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestMultiOrOperatorGroup(t *testing.T) {
|
||||
tests := []struct {
|
||||
Value int `validate:"eq=1|gte=5,eq=1|lt=7"`
|
||||
expected bool
|
||||
}{
|
||||
{1, true}, {2, false}, {5, true}, {6, true}, {8, false},
|
||||
}
|
||||
|
||||
validate := New()
|
||||
|
||||
for i, test := range tests {
|
||||
errs := validate.Struct(test)
|
||||
if test.expected {
|
||||
if !IsEqual(errs, nil) {
|
||||
t.Fatalf("Index: %d multi_group_of_OR_operators failed Error: %s", i, errs)
|
||||
}
|
||||
} else {
|
||||
if IsEqual(errs, nil) {
|
||||
t.Fatalf("Index: %d multi_group_of_OR_operators should have errs", i)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue