-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy patherrors_test.go
93 lines (84 loc) · 1.59 KB
/
errors_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package goflow
import (
"errors"
"strings"
"testing"
"github.com/stretchr/testify/suite"
"gopkg.in/yaml.v2"
)
type ErrorSuite struct {
suite.Suite
}
func TestErrorSuite(t *testing.T) {
suite.Run(t, new(ErrorSuite))
}
func (s *ErrorSuite) TestMultiError_flatten() {
merr := MultiError{
Errs: []error{
errors.New("1"),
errors.New("2"),
MultiError{
Errs: []error{
errors.New("3"),
errors.New("4"),
},
},
errors.New("5"),
MultiError{
Errs: []error{
errors.New("6"),
MultiError{
Errs: []error{
errors.New("7"),
errors.New("8"),
},
},
MultiError{
Errs: []error{
errors.New("9"),
errors.New("10"),
},
},
},
},
},
}
flattened := merr.flatten()
expected := MultiError{
Errs: []error{
errors.New("1"),
errors.New("2"),
errors.New("3"),
errors.New("4"),
errors.New("5"),
errors.New("6"),
errors.New("7"),
errors.New("8"),
errors.New("9"),
errors.New("10"),
},
}
s.Assert().Equal(expected, flattened)
}
func (s *ErrorSuite) TestParseYAMLError_nil() {
yamlErr := ParseYAMLError(nil)
s.Assert().Nil(yamlErr)
}
func (s *ErrorSuite) TestParseYAMLError_notYAML() {
err := errors.New("not a yaml error")
yamlErr := ParseYAMLError(err)
s.Assert().Equal(err, yamlErr)
}
func (s *ErrorSuite) TestParseYAMLError() {
r := strings.NewReader(`
- key: value
error
`)
err := yaml.NewDecoder(r).Decode(nil)
yamlErr := ParseYAMLError(err)
expected := YAMLError{
Line: 4,
Err: errors.New("could not find expected ':'"),
}
s.Assert().Equal(expected, yamlErr)
}