forked from aarondl/authboss
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidation_test.go
More file actions
executable file
·137 lines (115 loc) · 3.62 KB
/
validation_test.go
File metadata and controls
executable file
·137 lines (115 loc) · 3.62 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
136
137
package authboss
import (
"errors"
"testing"
)
func TestErrorList_Error(t *testing.T) {
t.Parallel()
errList := ErrorList{errors.New("one"), errors.New("two")}
if e := errList.Error(); e != "one, two" {
t.Error("Wrong value for error:", e)
}
}
func TestErrorList_Map(t *testing.T) {
t.Parallel()
errNotLong := "not long enough"
errEmail := "should be an email"
errAsploded := "asploded"
errList := ErrorList{
FieldError{StoreUsername, errors.New(errNotLong)},
FieldError{StoreUsername, errors.New(errEmail)},
FieldError{StorePassword, errors.New(errNotLong)},
errors.New(errAsploded),
}
m := errList.Map()
if len(m) != 3 {
t.Error("Wrong number of fields:", len(m))
}
usernameErrs := m[StoreUsername]
if len(usernameErrs) != 2 {
t.Error("Wrong number of username errors:", len(usernameErrs))
}
if usernameErrs[0] != errNotLong {
t.Error("Wrong username error at 0:", usernameErrs[0])
}
if usernameErrs[1] != errEmail {
t.Error("Wrong username error at 1:", usernameErrs[1])
}
passwordErrs := m[StorePassword]
if len(passwordErrs) != 1 {
t.Error("Wrong number of password errors:", len(passwordErrs))
}
if passwordErrs[0] != errNotLong {
t.Error("Wrong password error at 0:", passwordErrs[0])
}
unknownErrs := m[""]
if len(unknownErrs) != 1 {
t.Error("Wrong number of unkown errors:", len(unknownErrs))
}
if unknownErrs[0] != errAsploded {
t.Error("Wrong unkown error at 0:", unknownErrs[0])
}
}
func TestValidate(t *testing.T) {
t.Parallel()
req := mockRequest(StoreUsername, "john", StoreEmail, "john@john.com")
errList := Validate(req, []Validator{
mockValidator{
FieldName: StoreUsername,
Errs: ErrorList{FieldError{StoreUsername, errors.New("must be longer than 4")}},
},
mockValidator{
FieldName: "missing_field",
Errs: ErrorList{FieldError{"missing_field", errors.New("Expected field to exist.")}},
},
mockValidator{
FieldName: StoreEmail, Errs: nil,
},
})
errs := errList.Map()
if errs[StoreUsername][0] != "must be longer than 4" {
t.Error("Expected a different error for username:", errs[StoreUsername][0])
}
if errs["missing_field"][0] != "Expected field to exist." {
t.Error("Expected a different error for missing_field:", errs["missing_field"][0])
}
if _, ok := errs[StoreEmail]; ok {
t.Error("Expected no errors for email.")
}
}
func TestValidate_Confirm(t *testing.T) {
t.Parallel()
req := mockRequest(StoreUsername, "john", "confirmUsername", "johnny")
errs := Validate(req, nil, StoreUsername, "confirmUsername").Map()
if errs["confirmUsername"][0] != "Does not match username" {
t.Error("Expected a different error for confirmUsername:", errs["confirmUsername"][0])
}
req = mockRequest(StoreUsername, "john", "confirmUsername", "john")
errs = Validate(req, nil, StoreUsername, "confirmUsername").Map()
if len(errs) != 0 {
t.Error("Expected no errors:", errs)
}
req = mockRequest(StoreUsername, "john", "confirmUsername", "john")
errs = Validate(req, nil, StoreUsername).Map()
if len(errs) != 0 {
t.Error("Expected no errors:", errs)
}
}
func TestFilterValidators(t *testing.T) {
t.Parallel()
validators := []Validator{
mockValidator{
FieldName: StoreUsername, Errs: ErrorList{FieldError{StoreUsername, errors.New("must be longer than 4")}},
},
mockValidator{
FieldName: StorePassword, Errs: ErrorList{FieldError{StorePassword, errors.New("must be longer than 4")}},
},
}
validators = FilterValidators(validators, StoreUsername)
if len(validators) != 1 {
t.Error("Expected length to be 1")
}
if validators[0].Field() != StoreUsername {
t.Error("Expcted validator for field username", validators[0].Field())
}
}