github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/neorpc/errors_test.go (about) 1 package neorpc 2 3 import ( 4 "errors" 5 "fmt" 6 "io/fs" 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestError_ErrorsAs(t *testing.T) { 13 err := NewInternalServerError("some error") 14 wrapped := fmt.Errorf("some meaningful error: %w", err) 15 16 // Check that Error can be used as a target for errors.As: 17 var actual *Error 18 require.True(t, errors.As(wrapped, &actual)) 19 require.Equal(t, "Internal error (-32603) - some error", actual.Error()) 20 21 var bad *fs.PathError 22 require.False(t, errors.As(wrapped, &bad)) 23 } 24 25 func TestError_ErrorsIs(t *testing.T) { 26 err := NewInternalServerError("some error") 27 wrapped := fmt.Errorf("some meaningful error: %w", err) 28 29 // Check that Error can be recognized via errors.Is: 30 ref := NewInternalServerError("another server error") 31 require.True(t, errors.Is(wrapped, ref)) 32 33 // Invalid target type: 34 require.False(t, errors.Is(wrapped, NewInvalidParamsError("invalid params"))) 35 }