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