const values = [ { name: 'Alpha' }, { name: 'Beta' }, { name: 'Gamma' } ]; export default { props: { values, selected: [values[1]] }, html: ` <label> <input type="checkbox" value="[object Object]"> Alpha </label> <label> <input type="checkbox" value="[object Object]"> Beta </label> <label> <input type="checkbox" value="[object Object]"> Gamma </label> <p>Beta</p>`, ssrHtml: ` <label> <input type="checkbox" value="[object Object]"> Alpha </label> <label> <input type="checkbox" value="[object Object]" checked> Beta </label> <label> <input type="checkbox" value="[object Object]"> Gamma </label> <p>Beta</p>`, async test({ assert, component, target, window }) { const inputs = target.querySelectorAll('input'); assert.equal(inputs[0].checked, false); assert.equal(inputs[1].checked, true); assert.equal(inputs[2].checked, false); const event = new window.Event('change'); inputs[0].checked = true; await inputs[0].dispatchEvent(event); assert.htmlEqual(target.innerHTML, ` <label> <input type="checkbox" value="[object Object]"> Alpha </label> <label> <input type="checkbox" value="[object Object]"> Beta </label> <label> <input type="checkbox" value="[object Object]"> Gamma </label> <p>Alpha, Beta</p> `); component.selected = [values[1], values[2]]; assert.equal(inputs[0].checked, false); assert.equal(inputs[1].checked, true); assert.equal(inputs[2].checked, true); assert.htmlEqual(target.innerHTML, ` <label> <input type="checkbox" value="[object Object]"> Alpha </label> <label> <input type="checkbox" value="[object Object]"> Beta </label> <label> <input type="checkbox" value="[object Object]"> Gamma </label> <p>Beta, Gamma</p> `); } };