2
2
3
3
describe ( 'unit tests for module ng.django.angular.messages' , function ( ) {
4
4
5
- function compileForm ( $compile , scope , replace_value ) {
5
+ function compileForm ( $compile , scope , replace_value , replace_rejected_type ) {
6
6
var template =
7
7
'<form name="valid_form" action=".">' +
8
- '<input name="email_field" ng-model="model.email" type="email" djng-validate- rejected {value} />' +
8
+ '<input name="email_field" ng-model="model.email" type="email" djng-rejected="{rejected_type}" {value} />' +
9
9
'</form>' ;
10
- var form = angular . element ( template . replace ( '{value}' , replace_value ) ) ;
10
+ template = template . replace ( '{value}' , replace_value )
11
+ template = template . replace ( '{rejected_type}' , replace_rejected_type || 'validator' )
12
+ var form = angular . element ( template ) ;
11
13
$compile ( form ) ( scope ) ;
12
14
scope . $digest ( ) ;
13
15
}
14
16
15
- function compileFormWithBoundError ( $compile , scope , replace_value ) {
17
+ function compileFormWithBoundError ( $compile , scope , replace_value , replace_djng_error_type ) {
16
18
var template =
17
19
'<form name="valid_form" action=".">' +
18
- '<input name="email_field" ng-model="model.email" type="email" djng-msgs -error="valid email required" djng-validate- rejected {value} />' +
20
+ '<input name="email_field" ng-model="model.email" type="email" djng-error="{error_type}" djng -error-msg ="valid email required" djng-rejected="validator" {value} />' +
19
21
'</form>' ;
20
- var form = angular . element ( template . replace ( '{value}' , replace_value ) ) ;
22
+ template = template . replace ( '{value}' , replace_value )
23
+ template = template . replace ( '{error_type}' , replace_djng_error_type || 'bound-msgs-field' )
24
+ var form = angular . element ( template ) ;
21
25
$compile ( form ) ( scope ) ;
22
26
scope . $digest ( ) ;
23
27
}
@@ -42,7 +46,7 @@ describe('unit tests for module ng.django.angular.messages', function() {
42
46
field . $setViewValue ( '[email protected] ' ) ;
43
47
expect ( field . $valid ) . toBe ( true ) ;
44
48
expect ( field . $pristine ) . toBe ( false ) ;
45
- form . setValidFieldsPristine ( ) ;
49
+ form . djngSetValidFieldsPristine ( ) ;
46
50
expect ( field . $valid ) . toBe ( true ) ;
47
51
expect ( field . $pristine ) . toBe ( true ) ;
48
52
} ) ;
@@ -51,7 +55,7 @@ describe('unit tests for module ng.django.angular.messages', function() {
51
55
field . $setViewValue ( 'example' ) ;
52
56
expect ( field . $valid ) . toBe ( false ) ;
53
57
expect ( field . $pristine ) . toBe ( false ) ;
54
- form . setValidFieldsPristine ( ) ;
58
+ form . djngSetValidFieldsPristine ( ) ;
55
59
expect ( field . $valid ) . toBe ( false ) ;
56
60
expect ( field . $pristine ) . toBe ( false ) ;
57
61
} ) ;
@@ -71,17 +75,27 @@ describe('unit tests for module ng.django.angular.messages', function() {
71
75
$timeout = _$timeout_ ;
72
76
} ) ) ;
73
77
74
- it ( 'should invalidate field when djng-msgs- error exists' , function ( ) {
78
+ it ( 'should invalidate field when djng-error exists' , function ( ) {
75
79
$timeout . flush ( ) ;
76
80
expect ( field . $valid ) . toBe ( false ) ;
77
81
expect ( field . $error . rejected ) . toBe ( true ) ;
78
- expect ( field . $message . rejected ) . toBe ( 'valid email required' ) ;
82
+ expect ( field . $message ) . toBe ( 'valid email required' ) ;
79
83
} ) ;
80
84
81
85
it ( 'should set form to $submitted' , function ( ) {
82
86
$timeout . flush ( ) ;
83
87
expect ( form . $submitted ) . toBe ( true ) ;
84
88
} ) ;
89
+
90
+ it ( 'should ignore incorrect djng-error type' , inject ( function ( $rootScope , $compile ) {
91
+ scope = $rootScope . $new ( ) ;
92
+ compileFormWithBoundError ( $compile , scope , 'value="barry"' , 'bound-field' ) ;
93
+ form = scope . valid_form ;
94
+ field = scope . valid_form . email_field ;
95
+ expect ( field . $valid ) . toBe ( true ) ;
96
+ expect ( field . $error . rejected ) . toBe ( undefined ) ;
97
+ expect ( field . $message ) . toBe ( undefined ) ;
98
+ } ) ) ;
85
99
} ) ;
86
100
87
101
@@ -98,15 +112,15 @@ describe('unit tests for module ng.django.angular.messages', function() {
98
112
99
113
it ( 'should invalidate field when rejected message exists' , function ( ) {
100
114
field . $setViewValue ( '[email protected] ' ) ;
101
- field . $message = { rejected : 'email already in use' } ;
115
+ field . $message = 'email already in use' ;
102
116
field . $validate ( ) ;
103
117
expect ( field . $valid ) . toBe ( false ) ;
104
118
expect ( field . $error . rejected ) . toBe ( true ) ;
105
119
} ) ;
106
120
107
121
it ( 'should clear message and return true when new value is set on field and rejected message exists from previous failed rejected validation' , function ( ) {
108
122
field . $setViewValue ( '[email protected] ' ) ;
109
- field . $message = { rejected : 'email already in use' } ;
123
+ field . $message = 'email already in use' ;
110
124
field . $validate ( ) ;
111
125
expect ( field . $valid ) . toBe ( false ) ;
112
126
expect ( field . $error . rejected ) . toBe ( true ) ;
@@ -117,7 +131,7 @@ describe('unit tests for module ng.django.angular.messages', function() {
117
131
118
132
it ( 'should not remove message if field value is the same as previous failed rejected validation' , function ( ) {
119
133
field . $setViewValue ( '[email protected] ' ) ;
120
- field . $message = { rejected : 'email already in use' } ;
134
+ field . $message = 'email already in use' ;
121
135
field . $validate ( ) ;
122
136
expect ( field . $valid ) . toBe ( false ) ;
123
137
expect ( field . $error . rejected ) . toBe ( true ) ;
@@ -126,6 +140,18 @@ describe('unit tests for module ng.django.angular.messages', function() {
126
140
expect ( field . $valid ) . toBe ( false ) ;
127
141
expect ( field . $error . rejected ) . toBe ( true ) ;
128
142
} ) ;
143
+
144
+ it ( 'should ignore incorrect djng-rejected type' , inject ( function ( $rootScope , $compile ) {
145
+ scope = $rootScope . $new ( ) ;
146
+ compileForm ( $compile , scope , '' , 'none' ) ;
147
+ form = scope . valid_form ;
148
+ field = scope . valid_form . email_field ;
149
+ field . $setViewValue ( '[email protected] ' ) ;
150
+ field . $message = 'email already in use' ;
151
+ field . $validate ( ) ;
152
+ expect ( field . $valid ) . toBe ( true ) ;
153
+ expect ( field . $error . rejected ) . toBe ( undefined ) ;
154
+ } ) ) ;
129
155
} ) ;
130
156
131
157
@@ -163,9 +189,9 @@ describe('unit tests for module ng.django.angular.messages', function() {
163
189
expect ( field . $pristine ) . toBe ( true ) ;
164
190
} ) ;
165
191
166
- it ( 'should add rejected error message to field.$message.rejected and validate' , function ( ) {
192
+ it ( 'should add rejected error message to field.$message and validate' , function ( ) {
167
193
djngAngularMessagesForm . setErrors ( form , fieldError . errors ) ;
168
- expect ( field . $message . rejected ) . toBe ( 'This field is required.' ) ;
194
+ expect ( field . $message ) . toBe ( 'This field is required.' ) ;
169
195
expect ( field . $valid ) . toBe ( false ) ;
170
196
} ) ;
171
197
} ) ;
0 commit comments