-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patherrors_test.go
More file actions
135 lines (126 loc) · 3.8 KB
/
errors_test.go
File metadata and controls
135 lines (126 loc) · 3.8 KB
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package json_errors_test
import (
"errors"
"testing"
"github.com/pchchv/json_errors"
)
type args struct {
message string
wrapped error
}
func TestWrap(t *testing.T) {
tests := []struct {
name string
args args
want string
}{
{`empty`,
args{message: "", wrapped: errors.New("Hello from wrapped")},
`{"message":"Hello from wrapped"}`,
},
{`simple`,
args{message: "Failed", wrapped: errors.New("You have entered a wrong number")},
`{"message":"Failed","details":"You have entered a wrong number"}`,
},
{`i18n`,
args{message: "ı ğ ü ş i ö ç ä I Ğ Ü Ş İ Ö Ç â ê Ä η ή ί ώ w Ω Ә", wrapped: errors.New("abc")},
`{"message":"ı ğ ü ş i ö ç ä I Ğ Ü Ş İ Ö Ç â ê Ä η ή ί ώ w Ω Ә","details":"abc"}`,
},
{`html`,
args{message: `<p class='title'>Paragraph<hr /></p>`, wrapped: errors.New("abc")},
`{"message":"<p class='title'>Paragraph<hr /></p>","details":"abc"}`,
},
{`html with double quote`,
args{message: `<div class="title"></div>`, wrapped: errors.New("abc")},
`{"message":"<div class=\"title\"></div>","details":"abc"}`,
},
{`newline`,
// DO NOT remove the new line in this string literal
args{message: `New
Line`, wrapped: errors.New("abc")},
`{"message":"New\nLine","details":"abc"}`,
},
{`newline with \n`,
args{message: `New\nLine`, wrapped: errors.New("abc")},
`{"message":"New\nLine","details":"abc"}`,
},
{`tab`,
args{message: `json error`, wrapped: errors.New("abc")},
`{"message":"json\terror","details":"abc"}`,
},
{`empty with a json_errors.New() error`,
args{message: "", wrapped: json_errors.New("Hello from json_errors.New()")},
`{"message":"Hello from json_errors.New()"}`,
},
{`simple with a json_errors.New() error`,
args{message: "Failed", wrapped: json_errors.New("Hello from json_errors.New()")},
`{"message":"Failed","details":{"message":"Hello from json_errors.New()"}}`,
},
{`empty with a json_errors.Wrap() error`,
args{message: "", wrapped: json_errors.Wrap(errors.New("from wrap()'s details"), "Hello from json_errors.Wrap()")},
`{"message":"Hello from json_errors.Wrap()","details":"from wrap()'s details"}`,
},
{`simple with a json_errors.Wrap() error`,
args{message: "Failed", wrapped: json_errors.Wrap(errors.New("Something is wrong"), "Check the details, please")},
`{"message":"Failed","details":{"message":"Check the details, please","details":"Something is wrong"}}`,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := json_errors.Wrap(tt.args.wrapped, tt.args.message).Error()
if got != tt.want {
t.Error("Got:", got, "Want:", tt.want)
}
})
}
}
func TestNew(t *testing.T) {
tests := []struct {
name string
args args
want string
}{
{`empty`,
args{message: ""},
"{}",
},
{`simple`,
args{message: "Hello World"},
`{"message":"Hello World"}`,
},
{`i18n`,
args{message: "ı ğ ü ş i ö ç ä I Ğ Ü Ş İ Ö Ç â ê Ä η ή ί ώ w Ω Ә"},
`{"message":"ı ğ ü ş i ö ç ä I Ğ Ü Ş İ Ö Ç â ê Ä η ή ί ώ w Ω Ә"}`,
},
{`html`,
args{message: `<p class='title'>Paragraph<hr /></p>`},
`{"message":"<p class='title'>Paragraph<hr /></p>"}`,
},
{`html with double quote`,
args{message: `<div class="title"></div>`},
`{"message":"<div class=\"title\"></div>"}`,
},
{`newline`,
// DO NOT remove the new line in this string literal
args{message: `New
Line`},
`{"message":"New\nLine"}`,
},
{`newline with \n`,
args{message: `New\nLine`},
`{"message":"New\nLine"}`,
},
{`tab`,
args{message: `json error`},
`{"message":"json\terror"}`,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := json_errors.New(tt.args.message).Error()
if got != tt.want {
t.Error("Got:", got, "Want:", tt.want)
}
})
}
}