Skip to content

Commit aa07c1f

Browse files
committed
enhance test
1 parent 57d57e3 commit aa07c1f

File tree

2 files changed

+83
-18
lines changed

2 files changed

+83
-18
lines changed

packages/svelte/tests/runtime-runes/samples/form-default-value/_config.js

Lines changed: 68 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

packages/svelte/tests/runtime-runes/samples/form-default-value/main.svelte

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,18 @@
139139

140140
<input type="reset" value="Reset" />
141141
</form>
142+
143+
<p>
144+
Bound values:
145+
<span class="test-1">{value1} {value3} {value6} {value8}</span>
146+
<span class="test-2">{value9} {value12} {value14} {value16}</span>
147+
<span class="test-3">{checked2} {checked4}</span>
148+
<span class="test-4">{checked6} {checked8}</span>
149+
<span class="test-5">{checked10}</span>
150+
<span class="test-6">{selected1}</span>
151+
<span class="test-7">{selected2}</span>
152+
<span class="test-8">{selected3}</span>
153+
<span class="test-9">{selected4}</span>
154+
<span class="test-10">{selected5}</span>
155+
<span class="test-11">{selected6}</span>
156+
</p>

0 commit comments

Comments
 (0)