mirror of
https://github.com/foomo/fender.git
synced 2025-10-16 12:25:39 +00:00
36 lines
749 B
Go
36 lines
749 B
Go
package fender_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/foomo/fender"
|
|
"github.com/pkg/errors"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestStruct(t *testing.T) {
|
|
type test struct {
|
|
String string `validate:"required"`
|
|
Int int `validate:"min=10"`
|
|
}
|
|
|
|
t.Run("success", func(t *testing.T) {
|
|
inst := test{
|
|
String: "foo",
|
|
Int: 13,
|
|
}
|
|
if fendErr, err := fender.Struct(inst); assert.NoError(t, err) {
|
|
assert.Nil(t, fendErr)
|
|
}
|
|
})
|
|
|
|
t.Run("errors", func(t *testing.T) {
|
|
if fendErr, err := fender.Struct(test{}); assert.NoError(t, err) {
|
|
assert.True(t, errors.Is(fendErr, fender.Err))
|
|
errs := fendErr.Errors()
|
|
assert.Len(t, errs, 2)
|
|
assert.Len(t, fendErr.Error(), len("string:required;int:min=10"))
|
|
}
|
|
})
|
|
}
|