fender/struct_test.go
Kevin Franklin Kim 74b8e099df style: fix lint
2022-02-04 09:16:00 +01:00

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"))
}
})
}