@@ -32,6 +32,7 @@ describe("FieldRadios.vue", function() {
3232 let model = { skills : "Javascript" } ;
3333 let radioList ;
3434 let radios ;
35+ let labelList ;
3536
3637 function isChecked ( idx ) {
3738 return ( radios [ idx ] . checked ) ;
@@ -41,6 +42,7 @@ describe("FieldRadios.vue", function() {
4142 createField ( this , schema , model , false ) ;
4243 radioList = el . querySelector ( ".radio-list" ) ;
4344 radios = radioList . querySelectorAll ( "input[type=radio]" ) ;
45+ labelList = radioList . querySelectorAll ( "label" ) ;
4446 } ) ;
4547
4648 it ( "should contain a checkbox element" , ( ) => {
@@ -64,31 +66,77 @@ describe("FieldRadios.vue", function() {
6466 expect ( isChecked ( 6 ) ) . to . be . false ;
6567 } ) ;
6668
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+ } ) ;
7894 } ) ;
7995
80- } ) ;
96+ it ( "model value should be the radioList value if changed" , ( done ) => {
97+ radios [ 0 ] . click ( ) ;
8198
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+ } ) ;
84105
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+ } ) ;
88120 } ) ;
89121
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+ } ) ;
90136 } ) ;
91137
138+
139+
92140 } ) ;
93141
94142 describe ( "check template with object array" , ( ) => {
@@ -113,6 +161,7 @@ describe("FieldRadios.vue", function() {
113161 let model = { skills : "CSS3-123" } ;
114162 let radioList ;
115163 let radios ;
164+ let labelList ;
116165
117166 function isChecked ( idx ) {
118167 return ( radios [ idx ] . checked ) ;
@@ -122,6 +171,7 @@ describe("FieldRadios.vue", function() {
122171 createField ( this , schema , model , false ) ;
123172 radioList = el . querySelector ( ".radio-list" ) ;
124173 radios = radioList . querySelectorAll ( "input[type=radio]" ) ;
174+ labelList = radioList . querySelectorAll ( "label" ) ;
125175 } ) ;
126176
127177 it ( "should contain a checkbox element" , ( ) => {
@@ -145,28 +195,71 @@ describe("FieldRadios.vue", function() {
145195 expect ( isChecked ( 6 ) ) . to . be . false ;
146196 } ) ;
147197
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 ;
160206 } ) ;
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 ( ) ;
161225
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" , ( ) => {
164234
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+ } ) ;
168247 } ) ;
169248
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+ } ) ;
170263 } ) ;
171264
172265 } ) ;
0 commit comments