@@ -32,6 +32,7 @@ describe("FieldRadios.vue", function() {
32
32
let model = { skills : "Javascript" } ;
33
33
let radioList ;
34
34
let radios ;
35
+ let labelList ;
35
36
36
37
function isChecked ( idx ) {
37
38
return ( radios [ idx ] . checked ) ;
@@ -41,6 +42,7 @@ describe("FieldRadios.vue", function() {
41
42
createField ( this , schema , model , false ) ;
42
43
radioList = el . querySelector ( ".radio-list" ) ;
43
44
radios = radioList . querySelectorAll ( "input[type=radio]" ) ;
45
+ labelList = radioList . querySelectorAll ( "label" ) ;
44
46
} ) ;
45
47
46
48
it ( "should contain a checkbox element" , ( ) => {
@@ -64,31 +66,77 @@ describe("FieldRadios.vue", function() {
64
66
expect ( isChecked ( 6 ) ) . to . be . false ;
65
67
} ) ;
66
68
67
- it ( "radioList value should be the model value after changed" , ( done ) => {
68
- model . skills = "ReactJS" ;
69
- vm . $nextTick ( ( ) => {
70
- expect ( isChecked ( 0 ) ) . to . be . false ;
71
- expect ( isChecked ( 1 ) ) . to . be . false ;
72
- expect ( isChecked ( 2 ) ) . to . be . false ;
73
- expect ( isChecked ( 3 ) ) . to . be . false ;
74
- expect ( isChecked ( 4 ) ) . to . be . false ;
75
- expect ( isChecked ( 5 ) ) . to . be . true ;
76
- expect ( isChecked ( 6 ) ) . to . be . false ;
77
- done ( ) ;
69
+ it ( "label with checked input should have a 'is-checked' class" , ( ) => {
70
+ expect ( labelList [ 0 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
71
+ expect ( labelList [ 1 ] . classList . contains ( "is-checked" ) ) . to . be . true ;
72
+ expect ( labelList [ 2 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
73
+ expect ( labelList [ 3 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
74
+ expect ( labelList [ 4 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
75
+ expect ( labelList [ 5 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
76
+ expect ( labelList [ 6 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
77
+ } ) ;
78
+
79
+
80
+ describe ( "test values reactivity to changes" , ( ) => {
81
+
82
+ it ( "radioList value should be the model value after changed" , ( done ) => {
83
+ model . skills = "ReactJS" ;
84
+ vm . $nextTick ( ( ) => {
85
+ expect ( isChecked ( 0 ) ) . to . be . false ;
86
+ expect ( isChecked ( 1 ) ) . to . be . false ;
87
+ expect ( isChecked ( 2 ) ) . to . be . false ;
88
+ expect ( isChecked ( 3 ) ) . to . be . false ;
89
+ expect ( isChecked ( 4 ) ) . to . be . false ;
90
+ expect ( isChecked ( 5 ) ) . to . be . true ;
91
+ expect ( isChecked ( 6 ) ) . to . be . false ;
92
+ done ( ) ;
93
+ } ) ;
78
94
} ) ;
79
95
80
- } ) ;
96
+ it ( "model value should be the radioList value if changed" , ( done ) => {
97
+ radios [ 0 ] . click ( ) ;
81
98
82
- it ( "model value should be the radioList value if changed" , ( done ) => {
83
- radios [ 0 ] . click ( ) ;
99
+ vm . $nextTick ( ( ) => {
100
+ expect ( model . skills ) . to . be . equal ( "HTML5" ) ;
101
+ done ( ) ;
102
+ } ) ;
103
+ } ) ;
104
+ } ) ;
84
105
85
- vm . $nextTick ( ( ) => {
86
- expect ( model . skills ) . to . be . equal ( "HTML5" ) ;
87
- done ( ) ;
106
+ describe ( "test 'is-checked' class attribution reactivity to changes" , ( ) => {
107
+
108
+ it ( "label with checked input should have a 'is-checked' class after model value is changed" , ( done ) => {
109
+ model . skills = "ReactJS" ;
110
+ vm . $nextTick ( ( ) => {
111
+ expect ( labelList [ 0 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
112
+ expect ( labelList [ 1 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
113
+ expect ( labelList [ 2 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
114
+ expect ( labelList [ 3 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
115
+ expect ( labelList [ 4 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
116
+ expect ( labelList [ 5 ] . classList . contains ( "is-checked" ) ) . to . be . true ;
117
+ expect ( labelList [ 6 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
118
+ done ( ) ;
119
+ } ) ;
88
120
} ) ;
89
121
122
+ it ( "label with checked input should have a 'is-checked' class after radioList value is changed" , ( done ) => {
123
+ radios [ 2 ] . click ( ) ;
124
+
125
+ vm . $nextTick ( ( ) => {
126
+ expect ( labelList [ 0 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
127
+ expect ( labelList [ 1 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
128
+ expect ( labelList [ 2 ] . classList . contains ( "is-checked" ) ) . to . be . true ;
129
+ expect ( labelList [ 3 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
130
+ expect ( labelList [ 4 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
131
+ expect ( labelList [ 5 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
132
+ expect ( labelList [ 6 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
133
+ done ( ) ;
134
+ } ) ;
135
+ } ) ;
90
136
} ) ;
91
137
138
+
139
+
92
140
} ) ;
93
141
94
142
describe ( "check template with object array" , ( ) => {
@@ -113,6 +161,7 @@ describe("FieldRadios.vue", function() {
113
161
let model = { skills : "CSS3-123" } ;
114
162
let radioList ;
115
163
let radios ;
164
+ let labelList ;
116
165
117
166
function isChecked ( idx ) {
118
167
return ( radios [ idx ] . checked ) ;
@@ -122,6 +171,7 @@ describe("FieldRadios.vue", function() {
122
171
createField ( this , schema , model , false ) ;
123
172
radioList = el . querySelector ( ".radio-list" ) ;
124
173
radios = radioList . querySelectorAll ( "input[type=radio]" ) ;
174
+ labelList = radioList . querySelectorAll ( "label" ) ;
125
175
} ) ;
126
176
127
177
it ( "should contain a checkbox element" , ( ) => {
@@ -145,28 +195,71 @@ describe("FieldRadios.vue", function() {
145
195
expect ( isChecked ( 6 ) ) . to . be . false ;
146
196
} ) ;
147
197
148
- it ( "radioList value should be the model value after changed" , ( done ) => {
149
- model . skills = "ReactJS-123" ;
150
- vm . $nextTick ( ( ) => {
151
- expect ( isChecked ( 0 ) ) . to . be . false ;
152
- expect ( isChecked ( 1 ) ) . to . be . false ;
153
- expect ( isChecked ( 2 ) ) . to . be . false ;
154
- expect ( isChecked ( 3 ) ) . to . be . false ;
155
- expect ( isChecked ( 4 ) ) . to . be . false ;
156
- expect ( isChecked ( 5 ) ) . to . be . true ;
157
- expect ( isChecked ( 6 ) ) . to . be . false ;
158
- done ( ) ;
159
- } ) ;
198
+ it ( "label with checked input should have a 'is-checked' class" , ( ) => {
199
+ expect ( labelList [ 0 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
200
+ expect ( labelList [ 1 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
201
+ expect ( labelList [ 2 ] . classList . contains ( "is-checked" ) ) . to . be . true ;
202
+ expect ( labelList [ 3 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
203
+ expect ( labelList [ 4 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
204
+ expect ( labelList [ 5 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
205
+ expect ( labelList [ 6 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
160
206
} ) ;
207
+ describe ( "test values reactivity to changes" , ( ) => {
208
+
209
+ it ( "radioList value should be the model value after changed" , ( done ) => {
210
+ model . skills = "ReactJS-123" ;
211
+ vm . $nextTick ( ( ) => {
212
+ expect ( isChecked ( 0 ) ) . to . be . false ;
213
+ expect ( isChecked ( 1 ) ) . to . be . false ;
214
+ expect ( isChecked ( 2 ) ) . to . be . false ;
215
+ expect ( isChecked ( 3 ) ) . to . be . false ;
216
+ expect ( isChecked ( 4 ) ) . to . be . false ;
217
+ expect ( isChecked ( 5 ) ) . to . be . true ;
218
+ expect ( isChecked ( 6 ) ) . to . be . false ;
219
+ done ( ) ;
220
+ } ) ;
221
+ } ) ;
222
+
223
+ it ( "model value should be the radioList value if changed" , ( done ) => {
224
+ radios [ 0 ] . click ( ) ;
161
225
162
- it ( "model value should be the radioList value if changed" , ( done ) => {
163
- radios [ 0 ] . click ( ) ;
226
+ vm . $nextTick ( ( ) => {
227
+ expect ( model . skills ) . to . be . equal ( "HTML5-123" ) ;
228
+ done ( ) ;
229
+ } ) ;
230
+ } ) ;
231
+ } ) ;
232
+
233
+ describe ( "test 'is-checked' class attribution reactivity to changes" , ( ) => {
164
234
165
- vm . $nextTick ( ( ) => {
166
- expect ( model . skills ) . to . be . equal ( "HTML5-123" ) ;
167
- done ( ) ;
235
+ it ( "label with checked input should have a 'is-checked' class after model value is changed" , ( done ) => {
236
+ model . skills = "ReactJS-123" ;
237
+ vm . $nextTick ( ( ) => {
238
+ expect ( labelList [ 0 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
239
+ expect ( labelList [ 1 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
240
+ expect ( labelList [ 2 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
241
+ expect ( labelList [ 3 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
242
+ expect ( labelList [ 4 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
243
+ expect ( labelList [ 5 ] . classList . contains ( "is-checked" ) ) . to . be . true ;
244
+ expect ( labelList [ 6 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
245
+ done ( ) ;
246
+ } ) ;
168
247
} ) ;
169
248
249
+ it ( "label with checked input should have a 'is-checked' class after radioList value is changed" , ( done ) => {
250
+ radios [ 2 ] . click ( ) ;
251
+
252
+ vm . $nextTick ( ( ) => {
253
+ expect ( labelList [ 0 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
254
+ expect ( labelList [ 1 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
255
+ expect ( labelList [ 2 ] . classList . contains ( "is-checked" ) ) . to . be . true ;
256
+ expect ( labelList [ 3 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
257
+ expect ( labelList [ 4 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
258
+ expect ( labelList [ 5 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
259
+ expect ( labelList [ 6 ] . classList . contains ( "is-checked" ) ) . to . be . false ;
260
+ done ( ) ;
261
+ } ) ;
262
+ } ) ;
170
263
} ) ;
171
264
172
265
} ) ;
0 commit comments