@@ -28,7 +28,7 @@ import (
28
28
"errors"
29
29
"testing"
30
30
31
- "github.com/stretchr/testify/assert "
31
+ "github.com/stretchr/testify/require "
32
32
)
33
33
34
34
func TestErrorsChain (t * testing.T ) {
@@ -39,15 +39,92 @@ func TestErrorsChain(t *testing.T) {
39
39
40
40
chain := New (ReturnFirst ()).AddError (e1 ).AddError (e2 ).AddError (e3 )
41
41
actual := chain .Error ()
42
- assert .True (t , errors .Is (actual , e1 ))
42
+ require .True (t , errors .Is (actual , e1 ))
43
43
})
44
+
45
+ t .Run ("With Error" , func (t * testing.T ) {
46
+ chain := New (ReturnFirst ()).AddError (nil )
47
+ actual := chain .Error ()
48
+ require .NoError (t , actual )
49
+ })
50
+
51
+ t .Run ("With AddErrorFn ReturnFirst" , func (t * testing.T ) {
52
+ var (
53
+ calledFn1 = false
54
+ calledFn2 = false
55
+ calledFn3 = false
56
+ )
57
+
58
+ fn1 := func () error { calledFn1 = true ; return errors .New ("err1" ) }
59
+ fn2 := func () error { calledFn2 = true ; return errors .New ("err2" ) }
60
+ fn3 := func () error { calledFn3 = true ; return errors .New ("err3" ) }
61
+
62
+ chain := New (ReturnFirst ()).
63
+ AddErrorFn (fn1 ).
64
+ AddErrorFn (fn2 ).
65
+ AddErrorFn (fn3 )
66
+ actual := chain .Error ()
67
+
68
+ require .EqualError (t , actual , "err1" )
69
+ require .True (t , calledFn1 )
70
+ require .False (t , calledFn2 )
71
+ require .False (t , calledFn3 )
72
+ })
73
+
74
+ t .Run ("With AddErrorFns ReturnFirst" , func (t * testing.T ) {
75
+ var (
76
+ calledFn1 = false
77
+ calledFn2 = false
78
+ calledFn3 = false
79
+ )
80
+
81
+ fn1 := func () error { calledFn1 = true ; return errors .New ("err1" ) }
82
+ fn2 := func () error { calledFn2 = true ; return errors .New ("err2" ) }
83
+ fn3 := func () error { calledFn3 = true ; return errors .New ("err3" ) }
84
+
85
+ chain := New (ReturnFirst ()).AddErrorFns (fn1 , fn2 , fn3 )
86
+ actual := chain .Error ()
87
+
88
+ require .EqualError (t , actual , "err1" )
89
+ require .True (t , calledFn1 )
90
+ require .False (t , calledFn2 )
91
+ require .False (t , calledFn3 )
92
+ })
93
+
94
+ t .Run ("With AddErrorFn ReturnAll" , func (t * testing.T ) {
95
+ var (
96
+ calledFn1 = false
97
+ calledFn2 = false
98
+ calledFn3 = false
99
+ )
100
+
101
+ fn1 := func () error { calledFn1 = true ; return errors .New ("err1" ) }
102
+ fn2 := func () error { calledFn2 = true ; return errors .New ("err2" ) }
103
+ fn3 := func () error { calledFn3 = true ; return nil }
104
+
105
+ chain := New (ReturnAll ()).
106
+ AddErrorFn (fn1 ).
107
+ AddErrorFn (fn2 ).
108
+ AddErrorFn (fn3 )
109
+ actual := chain .Error ()
110
+
111
+ require .EqualError (t , actual , "err1; err2" )
112
+ require .True (t , calledFn1 )
113
+ require .True (t , calledFn2 )
114
+ require .True (t , calledFn3 )
115
+ })
116
+
44
117
t .Run ("With ReturnAll" , func (t * testing.T ) {
45
118
e1 := errors .New ("err1" )
46
119
e2 := errors .New ("err2" )
47
120
e3 := errors .New ("err3" )
48
121
49
- chain := New (ReturnAll ()).AddError (e1 ).AddError (e2 ).AddError (e3 )
122
+ chain := New (ReturnAll ()).
123
+ AddError (e1 ).
124
+ AddError (e2 ).
125
+ AddError (e3 ).
126
+ AddError (nil )
50
127
actual := chain .Error ()
51
- assert .EqualError (t , actual , "err1; err2; err3" )
128
+ require .EqualError (t , actual , "err1; err2; err3" )
52
129
})
53
130
}
0 commit comments