import { writable } from '../../../../store'; const todos = [ writable({ done: false, text: 'write docs' }), writable({ done: false, text: 'implement contextual stores' }), writable({ done: false, text: 'go outside' }) ]; export default { error: 'Stores must be declared at the top level of the component (this may change in a future version of Svelte)', props: { todos }, html: ` <label> <input type=checkbox> [todo] write docs </label> <label> <input type=checkbox> [todo] implement contextual stores </label> <label> <input type=checkbox> [todo] go outside </label> `, async test({ assert, target, window }) { const inputs = target.querySelectorAll('input'); const change = new window.MouseEvent('change'); inputs[1].checked = true; await inputs[1].dispatchEvent(change); assert.htmlEqual(target.innerHTML, ` <label> <input type=checkbox> [todo] write docs </label> <label> <input type=checkbox> [done] implement contextual stores </label> <label> <input type=checkbox> [todo] go outside </label> `); await todos[0].update(todo => ({ done: !todo.done, text: todo.text })); assert.htmlEqual(target.innerHTML, ` <label> <input type=checkbox> [done] write docs </label> <label> <input type=checkbox> [done] implement contextual stores </label> <label> <input type=checkbox> [todo] go outside </label> `); } };