@@ -21,7 +21,9 @@ export default test({
2121 */
2222 function set_input ( input , field , value ) {
2323 input [ field ] = value ;
24- input . dispatchEvent ( new Event ( 'input' , { bubbles : true } ) ) ;
24+ input . dispatchEvent (
25+ new Event ( typeof value === 'boolean' ? 'change' : 'input' , { bubbles : true } )
26+ ) ;
2527 }
2628
2729 /**
@@ -37,122 +39,170 @@ export default test({
3739 const reset = /** @type {HTMLInputElement } */ ( target . querySelector ( 'input[type=reset]' ) ) ;
3840 const [ test1 , test2 , test3 , test4 , test5 ] = target . querySelectorAll ( 'div' ) ;
3941 const [ test6 , test7 , test8 , test9 ] = target . querySelectorAll ( 'select' ) ;
42+ const [
43+ test1_span ,
44+ test2_span ,
45+ test3_span ,
46+ test4_span ,
47+ test5_span ,
48+ test6_span ,
49+ test7_span ,
50+ test8_span ,
51+ test9_span
52+ ] = target . querySelectorAll ( 'span' ) ;
4053
4154 {
4255 /** @type {NodeListOf<HTMLInputElement | HTMLTextAreaElement> } */
4356 const inputs = test1 . querySelectorAll ( 'input, textarea' ) ;
4457 check_inputs ( inputs , 'value' , 'x' ) ;
58+ assert . htmlEqual ( test1_span . innerHTML , 'x x x x' ) ;
4559
4660 for ( const input of inputs ) {
4761 set_input ( input , 'value' , 'foo' ) ;
4862 }
4963 flushSync ( ) ;
5064 check_inputs ( inputs , 'value' , 'foo' ) ;
65+ assert . htmlEqual ( test1_span . innerHTML , 'foo foo foo foo' ) ;
5166
52- after_reset . push ( ( ) => check_inputs ( inputs , 'value' , 'x' ) ) ;
67+ after_reset . push ( ( ) => {
68+ console . log ( '-------------' ) ;
69+ check_inputs ( inputs , 'value' , 'x' ) ;
70+ assert . htmlEqual ( test1_span . innerHTML , 'x x x x' ) ;
71+ } ) ;
5372 }
5473
5574 {
5675 /** @type {NodeListOf<HTMLInputElement | HTMLTextAreaElement> } */
5776 const inputs = test2 . querySelectorAll ( 'input, textarea' ) ;
5877 check_inputs ( inputs , 'value' , 'y' ) ;
78+ assert . htmlEqual ( test2_span . innerHTML , 'y y y y' ) ;
5979
6080 for ( const input of inputs ) {
6181 set_input ( input , 'value' , 'foo' ) ;
6282 }
6383 flushSync ( ) ;
6484 check_inputs ( inputs , 'value' , 'foo' ) ;
85+ assert . htmlEqual ( test2_span . innerHTML , 'foo foo foo foo' ) ;
6586
66- after_reset . push ( ( ) => check_inputs ( inputs , 'value' , 'x' ) ) ;
87+ after_reset . push ( ( ) => {
88+ check_inputs ( inputs , 'value' , 'x' ) ;
89+ assert . htmlEqual ( test2_span . innerHTML , 'x x x x' ) ;
90+ } ) ;
6791 }
6892
6993 {
7094 /** @type {NodeListOf<HTMLInputElement> } */
7195 const inputs = test3 . querySelectorAll ( 'input' ) ;
7296 check_inputs ( inputs , 'checked' , true ) ;
97+ assert . htmlEqual ( test3_span . innerHTML , 'true true' ) ;
7398
7499 for ( const input of inputs ) {
75100 set_input ( input , 'checked' , false ) ;
76101 }
77102 flushSync ( ) ;
78103 check_inputs ( inputs , 'checked' , false ) ;
104+ assert . htmlEqual ( test3_span . innerHTML , 'false false' ) ;
79105
80- after_reset . push ( ( ) => check_inputs ( inputs , 'checked' , true ) ) ;
106+ after_reset . push ( ( ) => {
107+ check_inputs ( inputs , 'checked' , true ) ;
108+ assert . htmlEqual ( test3_span . innerHTML , 'true true' ) ;
109+ } ) ;
81110 }
82111
83112 {
84113 /** @type {NodeListOf<HTMLInputElement> } */
85114 const inputs = test4 . querySelectorAll ( 'input' ) ;
86115 check_inputs ( inputs , 'checked' , false ) ;
116+ assert . htmlEqual ( test4_span . innerHTML , 'false false' ) ;
87117
88- after_reset . push ( ( ) => check_inputs ( inputs , 'checked' , true ) ) ;
118+ after_reset . push ( ( ) => {
119+ check_inputs ( inputs , 'checked' , true ) ;
120+ assert . htmlEqual ( test4_span . innerHTML , 'true true' ) ;
121+ } ) ;
89122 }
90123
91124 {
92125 /** @type {NodeListOf<HTMLInputElement> } */
93126 const inputs = test5 . querySelectorAll ( 'input' ) ;
94127 check_inputs ( inputs , 'checked' , true ) ;
128+ assert . htmlEqual ( test5_span . innerHTML , 'true' ) ;
95129
96- after_reset . push ( ( ) => check_inputs ( inputs , 'checked' , false ) ) ;
97- }
98-
99- {
100- /** @type {NodeListOf<HTMLInputElement> } */
101- const inputs = test5 . querySelectorAll ( 'input' ) ;
102- check_inputs ( inputs , 'checked' , true ) ;
103-
104- after_reset . push ( ( ) => check_inputs ( inputs , 'checked' , false ) ) ;
130+ after_reset . push ( ( ) => {
131+ check_inputs ( inputs , 'checked' , false ) ;
132+ assert . htmlEqual ( test5_span . innerHTML , 'false' ) ;
133+ } ) ;
105134 }
106135
107136 {
108137 /** @type {NodeListOf<HTMLOptionElement> } */
109138 const options = test6 . querySelectorAll ( 'option' ) ;
110139 check_inputs ( options , 'selected' , [ false , true , false ] ) ;
140+ assert . htmlEqual ( test6_span . innerHTML , 'b' ) ;
111141
112142 select_option ( options [ 2 ] ) ;
113143 flushSync ( ) ;
114144 check_inputs ( options , 'selected' , [ false , false , true ] ) ;
145+ assert . htmlEqual ( test6_span . innerHTML , 'c' ) ;
115146
116- after_reset . push ( ( ) => check_inputs ( options , 'selected' , [ false , true , false ] ) ) ;
147+ after_reset . push ( ( ) => {
148+ check_inputs ( options , 'selected' , [ false , true , false ] ) ;
149+ assert . htmlEqual ( test6_span . innerHTML , 'b' ) ;
150+ } ) ;
117151 }
118152
119153 {
120154 /** @type {NodeListOf<HTMLOptionElement> } */
121155 const options = test7 . querySelectorAll ( 'option' ) ;
122156 check_inputs ( options , 'selected' , [ false , true , false ] ) ;
157+ assert . htmlEqual ( test7_span . innerHTML , 'b' ) ;
123158
124159 select_option ( options [ 2 ] ) ;
125160 flushSync ( ) ;
126161 check_inputs ( options , 'selected' , [ false , false , true ] ) ;
162+ assert . htmlEqual ( test7_span . innerHTML , 'c' ) ;
127163
128- after_reset . push ( ( ) => check_inputs ( options , 'selected' , [ false , true , false ] ) ) ;
164+ after_reset . push ( ( ) => {
165+ check_inputs ( options , 'selected' , [ false , true , false ] ) ;
166+ assert . htmlEqual ( test7_span . innerHTML , 'b' ) ;
167+ } ) ;
129168 }
130169
131170 {
132171 /** @type {NodeListOf<HTMLOptionElement> } */
133172 const options = test8 . querySelectorAll ( 'option' ) ;
134173 check_inputs ( options , 'selected' , [ false , false , true ] ) ;
174+ assert . htmlEqual ( test8_span . innerHTML , 'c' ) ;
135175
136176 select_option ( options [ 0 ] ) ;
137177 flushSync ( ) ;
138178 check_inputs ( options , 'selected' , [ true , false , false ] ) ;
179+ assert . htmlEqual ( test8_span . innerHTML , 'a' ) ;
139180
140- after_reset . push ( ( ) => check_inputs ( options , 'selected' , [ false , true , false ] ) ) ;
181+ after_reset . push ( ( ) => {
182+ check_inputs ( options , 'selected' , [ false , true , false ] ) ;
183+ assert . htmlEqual ( test8_span . innerHTML , 'b' ) ;
184+ } ) ;
141185 }
142186
143187 {
144188 /** @type {NodeListOf<HTMLOptionElement> } */
145189 const options = test9 . querySelectorAll ( 'option' ) ;
146190 check_inputs ( options , 'selected' , [ false , false , true ] ) ;
191+ assert . htmlEqual ( test9_span . innerHTML , 'c' ) ;
147192
148193 select_option ( options [ 0 ] ) ;
149194 flushSync ( ) ;
150195 check_inputs ( options , 'selected' , [ true , false , false ] ) ;
196+ assert . htmlEqual ( test9_span . innerHTML , 'a' ) ;
151197
152- after_reset . push ( ( ) => check_inputs ( options , 'selected' , [ false , true , false ] ) ) ;
198+ after_reset . push ( ( ) => {
199+ check_inputs ( options , 'selected' , [ false , true , false ] ) ;
200+ assert . htmlEqual ( test9_span . innerHTML , 'b' ) ;
201+ } ) ;
153202 }
154203
155204 reset . click ( ) ;
205+ await Promise . resolve ( ) ;
156206 flushSync ( ) ;
157207 after_reset . forEach ( ( fn ) => fn ( ) ) ;
158208 }
0 commit comments