File tree Expand file tree Collapse file tree 2 files changed +47
-2
lines changed
Expand file tree Collapse file tree 2 files changed +47
-2
lines changed Original file line number Diff line number Diff line change @@ -3,12 +3,18 @@ package fault
33import "fmt"
44
55// New creates a new basic fault error.
6- func New (message string ) error {
6+ func New (message string , w ... Wrapper ) error {
77 f := & fundamental {
88 msg : message ,
99 location : getLocation (),
1010 }
11- return f
11+
12+ var err error = f
13+ for _ , fn := range w {
14+ err = fn (err )
15+ }
16+
17+ return err
1218}
1319
1420// Newf includes formatting specifiers.
Original file line number Diff line number Diff line change 1+ package fault
2+
3+ import (
4+ "testing"
5+
6+ "github.com/stretchr/testify/require"
7+ )
8+
9+ type testNewExampleWraper struct { e error }
10+
11+ func (e * testNewExampleWraper ) Error () string { return "example wrapper" }
12+ func (e * testNewExampleWraper ) Unwrap () error { return e .e }
13+
14+ func testNewExampleWrap () func (error ) error {
15+ return func (err error ) error {
16+ return & testNewExampleWraper {err }
17+ }
18+ }
19+
20+ func TestNew (t * testing.T ) {
21+ r := require .New (t )
22+ var err error
23+
24+ err = New ("TestNew example" )
25+ r .Error (err )
26+
27+ err = New ("TestNew example" , testNewExampleWrap ())
28+ r .Error (err )
29+ _ , casts := err .(* testNewExampleWraper )
30+ r .True (casts )
31+ }
32+
33+ func TestNewf (t * testing.T ) {
34+ r := require .New (t )
35+
36+ err := Newf ("TestNew example %s" , "one" )
37+ r .Error (err )
38+ r .Equal ("TestNew example one" , err .Error ())
39+ }
You can’t perform that action at this time.
0 commit comments