File tree Expand file tree Collapse file tree 1 file changed +21
-5
lines changed Expand file tree Collapse file tree 1 file changed +21
-5
lines changed Original file line number Diff line number Diff line change 1
1
package errors
2
2
3
3
import (
4
- "errors"
5
4
"io"
6
5
"testing"
7
6
)
8
7
8
+ // Is is simplified facsimile of the go 1.13 errors.Is to ensure QueryError is compatible
9
+ func Is (err , target error ) bool {
10
+ for err != nil {
11
+ if target == err {
12
+ return true
13
+ }
14
+
15
+ switch e := err .(type ) {
16
+ case interface { Unwrap () error }:
17
+ err = e .Unwrap ()
18
+ default :
19
+ break
20
+ }
21
+ }
22
+ return false
23
+ }
24
+
9
25
func TestErrorf (t * testing.T ) {
10
26
cause := io .EOF
11
27
12
28
t .Run ("wrap error" , func (t * testing.T ) {
13
29
err := Errorf ("boom: %v" , cause )
14
- if ! errors . Is (err , cause ) {
30
+ if ! Is (err , cause ) {
15
31
t .Fatalf ("expected errors.Is to return true" )
16
32
}
17
33
})
18
34
19
35
t .Run ("handles nil" , func (t * testing.T ) {
20
36
var err * QueryError
21
- if errors . Is (err , cause ) {
37
+ if Is (err , cause ) {
22
38
t .Fatalf ("expected errors.Is to return false" )
23
39
}
24
40
})
25
41
26
42
t .Run ("handle no arguments" , func (t * testing.T ) {
27
43
err := Errorf ("boom" )
28
- if errors . Is (err , cause ) {
44
+ if Is (err , cause ) {
29
45
t .Fatalf ("expected errors.Is to return false" )
30
46
}
31
47
})
32
48
33
49
t .Run ("handle non-error argument arguments" , func (t * testing.T ) {
34
50
err := Errorf ("boom: %v" , "shaka" )
35
- if errors . Is (err , cause ) {
51
+ if Is (err , cause ) {
36
52
t .Fatalf ("expected errors.Is to return false" )
37
53
}
38
54
})
You can’t perform that action at this time.
0 commit comments