mirror of https://github.com/sveltejs/svelte
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.
56 lines
1010 B
56 lines
1010 B
7 years ago
|
export default {
|
||
|
data: {
|
||
|
prop: 'bar',
|
||
|
obj: {
|
||
|
foo: 'a',
|
||
|
bar: 'b',
|
||
|
baz: 'c'
|
||
|
}
|
||
|
},
|
||
|
|
||
|
html: `
|
||
|
<input>
|
||
|
<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>
|
||
|
` );
|
||
|
}
|
||
|
};
|