const tasks = [ { description: 'put your left leg in', done: false }, { description: 'your left leg out', done: false }, { description: 'in, out, in, out', done: false }, { description: 'shake it all about', done: false } ]; export default { 'skip-ssr': true, allowES2015: true, data: { tasks, selected: tasks[0] }, html: ` <select> <option value='[object Object]'>put your left leg in</option> <option value='[object Object]'>your left leg out</option> <option value='[object Object]'>in, out, in, out</option> <option value='[object Object]'>shake it all about</option> </select> <label> <input type='checkbox'> put your left leg in </label> <h2>Pending tasks</h2> <p>put your left leg in</p> <p>your left leg out</p> <p>in, out, in, out</p> <p>shake it all about</p> `, test(assert, component, target, window) { const input = target.querySelector('input'); const select = target.querySelector('select'); const options = target.querySelectorAll('option'); const change = new window.Event('change'); input.checked = true; input.dispatchEvent(change); assert.ok(component.get('tasks')[0].done); assert.htmlEqual(target.innerHTML, ` <select> <option value='[object Object]'>put your left leg in</option> <option value='[object Object]'>your left leg out</option> <option value='[object Object]'>in, out, in, out</option> <option value='[object Object]'>shake it all about</option> </select> <label> <input type='checkbox'> put your left leg in </label> <h2>Pending tasks</h2> <p>your left leg out</p> <p>in, out, in, out</p> <p>shake it all about</p> `); options[1].selected = true; select.dispatchEvent(change); assert.equal(component.get('selected'), tasks[1]); assert.ok(!input.checked); input.checked = true; input.dispatchEvent(change); assert.ok(component.get('tasks')[1].done); assert.htmlEqual(target.innerHTML, ` <select> <option value='[object Object]'>put your left leg in</option> <option value='[object Object]'>your left leg out</option> <option value='[object Object]'>in, out, in, out</option> <option value='[object Object]'>shake it all about</option> </select> <label> <input type='checkbox'> your left leg out </label> <h2>Pending tasks</h2> <p>in, out, in, out</p> <p>shake it all about</p> `); } };