MCPcopy
hub / github.com/apache/devlake / TestCrdbErrorImpl

Function TestCrdbErrorImpl

backend/core/errors/errors_test.go:29–89  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

27)
28
29func TestCrdbErrorImpl(t *testing.T) {
30 err := f1()
31 lakeErr := AsLakeErrorType(err)
32 require.NotNil(t, lakeErr)
33 t.Run("full_error", func(t *testing.T) {
34 fmt.Printf("======================Full Error=======================: \n%v\n\n\n", err)
35 require.Equal(t, err.Error(), lakeErr.Error())
36 })
37 t.Run("raw_message", func(t *testing.T) {
38 msg := lakeErr.Messages().Format()
39 require.NotEqual(t, err.Error(), msg)
40 fmt.Printf("======================Raw Message=======================: \n%s\n\n\n", msg)
41 msgParts := strings.Split(msg, "\ncaused by: ")
42 expectedParts := []string{
43 "f1 error (404)",
44 "f2 error (404)",
45 "f3 error (400)",
46 os.ErrNotExist.Error() + " (400)",
47 }
48 require.Equal(t, expectedParts, msgParts)
49 })
50 t.Run("type_conversion", func(t *testing.T) {
51 e := lakeErr.As(NotFound)
52 require.Equal(t, NotFound, e.GetType())
53 e = lakeErr.As(BadInput)
54 require.Equal(t, NotFound, e.GetType())
55 e = lakeErr.As(Internal)
56 require.Nil(t, e)
57 })
58 t.Run("type_casting", func(t *testing.T) {
59 require.True(t, errors.Is(lakeErr, os.ErrNotExist))
60 })
61 t.Run("combine_errors_type", func(t *testing.T) {
62 err = Unauthorized.Combine([]error{err, err})
63 lakeErr = AsLakeErrorType(err)
64 require.NotNil(t, lakeErr)
65 e := lakeErr.As(Unauthorized)
66 require.Equal(t, Unauthorized, e.GetType())
67 e = lakeErr.As(NotFound)
68 require.Nil(t, e)
69 e = lakeErr.As(BadInput)
70 require.Nil(t, e)
71 require.False(t, errors.Is(lakeErr, os.ErrNotExist))
72 })
73 t.Run("error convert", func(t *testing.T) {
74 rawErr := errors.New("test error")
75 err := Convert(rawErr)
76 require.Equal(t, rawErr, err.Unwrap())
77 require.Equal(t, Internal.GetHttpCode(), err.GetType().GetHttpCode())
78 baseErr := BadInput.Wrap(rawErr, "wrapped")
79 err2 := Convert(baseErr)
80 require.Same(t, baseErr, err2)
81 require.Equal(t, "wrapped (400)", err2.Messages().Get())
82 require.Same(t, rawErr, err2.Unwrap())
83 err3 := Default.WrapRaw(baseErr)
84 require.NotSame(t, baseErr, err3)
85 require.Equal(t, "wrapped (400)", err3.Messages().Get())
86 require.Equal(t, "wrapped (400)", err3.Messages().Get())

Callers

nothing calls this directly

Calls 15

f1Function · 0.85
AsLakeErrorTypeFunction · 0.85
RunMethod · 0.80
FormatMethod · 0.80
CombineMethod · 0.80
GetHttpCodeMethod · 0.80
WrapMethod · 0.80
WrapRawMethod · 0.80
ConvertFunction · 0.70
PrintfMethod · 0.65
ErrorMethod · 0.65
MessagesMethod · 0.65

Tested by

no test coverage detected