github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/internal/xcontext/context_error_test.go (about) 1 package xcontext 2 3 import ( 4 "context" 5 "fmt" 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 10 "github.com/ydb-platform/ydb-go-sdk/v3/internal/xerrors" 11 ) 12 13 func TestCtxErrError(t *testing.T) { 14 for _, tt := range []struct { 15 err error 16 str string 17 }{ 18 { 19 err: errAt(context.Canceled, 0), 20 str: "'context canceled' at `github.com/ydb-platform/ydb-go-sdk/v3/internal/xcontext.TestCtxErrError(context_error_test.go:19)`", //nolint:lll 21 }, 22 { 23 err: errFrom(context.DeadlineExceeded, "some.go"), 24 str: "'context deadline exceeded' from `some.go`", 25 }, 26 } { 27 t.Run("", func(t *testing.T) { 28 require.Equal(t, tt.str, tt.err.Error()) 29 }) 30 } 31 } 32 33 func TestCtxErrIs(t *testing.T) { 34 for _, tt := range []struct { 35 err error 36 target error 37 }{ 38 { 39 err: errAt(context.Canceled, 0), 40 target: context.Canceled, 41 }, 42 { 43 err: errFrom(context.DeadlineExceeded, "some.go"), 44 target: context.DeadlineExceeded, 45 }, 46 { 47 err: errAt(xerrors.WithStackTrace(context.Canceled), 0), 48 target: context.Canceled, 49 }, 50 { 51 err: errFrom(xerrors.WithStackTrace(context.DeadlineExceeded), "some.go"), 52 target: context.DeadlineExceeded, 53 }, 54 { 55 err: errAt(xerrors.WithStackTrace(fmt.Errorf("%w", context.Canceled)), 0), 56 target: context.Canceled, 57 }, 58 { 59 err: errFrom(xerrors.WithStackTrace(fmt.Errorf("%w", context.DeadlineExceeded)), "some.go"), 60 target: context.DeadlineExceeded, 61 }, 62 } { 63 t.Run("", func(t *testing.T) { 64 require.ErrorIs(t, tt.err, tt.target) 65 }) 66 } 67 }