cosmos-sdk/errors/main_test.go

40 lines
984 B
Go

package errors
import (
stderr "errors"
"strconv"
"testing"
pkerr "github.com/pkg/errors"
"github.com/stretchr/testify/assert"
abci "github.com/tendermint/abci/types"
)
func TestCreateResult(t *testing.T) {
assert := assert.New(t)
cases := []struct {
err error
msg string
code abci.CodeType
}{
{stderr.New("base"), "base", defaultErrCode},
{pkerr.New("dave"), "dave", defaultErrCode},
{New("nonce", abci.CodeType_BadNonce), "nonce", abci.CodeType_BadNonce},
{Wrap(stderr.New("wrap")), "wrap", defaultErrCode},
{WithCode(stderr.New("coded"), abci.CodeType_BaseInvalidInput), "coded", abci.CodeType_BaseInvalidInput},
{ErrDecoding(), errDecoding.Error(), abci.CodeType_EncodingError},
{ErrUnauthorized(), errUnauthorized.Error(), abci.CodeType_Unauthorized},
}
for idx, tc := range cases {
i := strconv.Itoa(idx)
res := Result(tc.err)
assert.True(res.IsErr(), i)
assert.Equal(tc.msg, res.Log, i)
assert.Equal(tc.code, res.Code, i)
}
}