mirror of
https://github.com/foomo/fender.git
synced 2025-10-16 12:25:39 +00:00
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package fender_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/foomo/fender"
|
|
"github.com/foomo/fender/fend"
|
|
"github.com/foomo/fender/rule"
|
|
"github.com/pkg/errors"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestAll(t *testing.T) {
|
|
t.Run("success", func(t *testing.T) {
|
|
err := fender.All(
|
|
fender.Field("foo", fend.String("foo", rule.RequiredString, rule.MinString(1))),
|
|
fender.Field("bar", fend.String("foo", rule.RequiredString, rule.MinString(1))),
|
|
)
|
|
assert.NoError(t, err)
|
|
})
|
|
|
|
t.Run("errors", func(t *testing.T) {
|
|
err := fender.All(
|
|
fender.Field("foo", fend.String("", rule.RequiredString, rule.MinString(10))),
|
|
fender.Field("bar", fend.String("bar", rule.RequiredString, rule.MinString(10))),
|
|
)
|
|
assert.Error(t, err)
|
|
assert.True(t, errors.Is(err, fender.Err))
|
|
errs := err.(*fender.Error).Errors()
|
|
assert.Len(t, errs, 2)
|
|
assert.EqualError(t, err, "foo:required;bar:min=10")
|
|
})
|
|
|
|
t.Run("errors combined", func(t *testing.T) {
|
|
err := fender.All(
|
|
fender.Field("foo", fend.String("", rule.RequiredString, rule.MinString(10))),
|
|
fender.Field("foo", fend.String("", rule.MinString(10), rule.RequiredString)),
|
|
)
|
|
assert.Error(t, err)
|
|
assert.True(t, errors.Is(err, fender.Err))
|
|
errs := err.(*fender.Error).Errors()
|
|
assert.Len(t, errs, 1)
|
|
assert.EqualError(t, err, "foo:required")
|
|
})
|
|
}
|