You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte/test/runtime/samples/binding-input-text-deep-com.../_config.js

61 lines
1.0 KiB

export default {
data: {
prop: 'bar',
obj: {
foo: 'a',
bar: 'b',
baz: 'c',
},
},
html: `
<input>
<pre>{"foo":"a","bar":"b","baz":"c"}</pre>
`,
ssrHtml: `
<input value=b>
<pre>{"foo":"a","bar":"b","baz":"c"}</pre>
`,
test(assert, component, target, window) {
const input = target.querySelector('input');
const event = new window.Event('input');
assert.equal(input.value, 'b');
// edit bar
input.value = 'e';
input.dispatchEvent(event);
assert.htmlEqual(target.innerHTML, `
<input>
<pre>{"foo":"a","bar":"e","baz":"c"}</pre>
`);
// edit baz
component.set({ prop: 'baz' });
assert.equal(input.value, 'c');
input.value = 'f';
input.dispatchEvent(event);
assert.htmlEqual(target.innerHTML, `
<input>
<pre>{"foo":"a","bar":"e","baz":"f"}</pre>
`);
// edit foo
component.set({ prop: 'foo' });
assert.equal(input.value, 'a');
input.value = 'd';
input.dispatchEvent(event);
assert.htmlEqual(target.innerHTML, `
<input>
<pre>{"foo":"d","bar":"e","baz":"f"}</pre>
`);
},
};