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  }