-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patherk_test.go
69 lines (55 loc) · 1.89 KB
/
erk_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
package erk_test
import (
"errors"
"testing"
"github.com/JosiahWitt/ensure"
"github.com/JosiahWitt/ensure/ensurepkg"
"github.com/JosiahWitt/erk"
)
func TestWrap(t *testing.T) {
ensure := ensure.New(t)
errWrapped := errors.New("hey")
msg := "my message"
err := erk.Wrap(ErkExample{}, msg, errWrapped)
ensure(err.Error()).Equals(msg)
ensure(erk.GetParams(err)).Equals(erk.Params{"err": errWrapped})
ensure(erk.GetKind(err)).Equals(ErkExample{})
ensure(errors.Unwrap(err)).Equals(errWrapped)
}
func TestWrapAs(t *testing.T) {
ensure := ensure.New(t)
errWrapped := errors.New("hey")
msg := "my message"
errWrapper := erk.New(ErkExample{}, msg)
err := erk.WrapAs(errWrapper, errWrapped)
ensure(err.Error()).Equals(msg)
ensure(erk.GetParams(err)).Equals(erk.Params{"err": errWrapped})
ensure(erk.GetKind(err)).Equals(ErkExample{})
ensure(errors.Unwrap(err)).Equals(errWrapped)
}
func TestWrapWith(t *testing.T) {
ensure := ensure.New(t)
errWrapped := errors.New("hey")
msg := "my message: {{.a}}"
errWrapper := erk.New(ErkExample{}, msg)
err := erk.WrapWith(errWrapper, errWrapped, erk.Params{"a": "hello"})
ensure(err.Error()).Equals("my message: hello")
ensure(erk.GetParams(err)).Equals(erk.Params{"err": errWrapped, "a": "hello"})
ensure(erk.GetKind(err)).Equals(ErkExample{})
ensure(errors.Unwrap(err)).Equals(errWrapped)
}
func TestToErk(t *testing.T) {
ensure := ensure.New(t)
ensure.Run("with erk.Erkable", func(ensure ensurepkg.Ensure) {
err := erk.New(ErkExample{}, "my message")
ensure(erk.ToErk(err)).Equals(err)
})
ensure.Run("with non erk.Erkable", func(ensure ensurepkg.Ensure) {
msg := "the message"
originalErr := errors.New(msg)
wrappedErr := erk.ToErk(originalErr)
ensure(erk.GetKind(wrappedErr)).IsNil()
ensure(wrappedErr.Error()).Equals(originalErr.Error())
ensure(erk.GetParams(wrappedErr)).Equals(erk.Params{erk.OriginalErrorParam: originalErr})
})
}