export default { data: { prop: 'bar', obj: { foo: 'a', bar: 'b', baz: 'c' } }, html: `
{"foo":"a","bar":"b","baz":"c"}
`,
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, `
{"foo":"a","bar":"e","baz":"c"}
` );
// edit baz
component.set({ prop: 'baz' });
assert.equal( input.value, 'c' );
input.value = 'f';
input.dispatchEvent( event );
assert.htmlEqual( target.innerHTML, `
{"foo":"a","bar":"e","baz":"f"}
` );
// edit foo
component.set({ prop: 'foo' });
assert.equal( input.value, 'a' );
input.value = 'd';
input.dispatchEvent( event );
assert.htmlEqual( target.innerHTML, `
{"foo":"d","bar":"e","baz":"f"}
` );
}
};