const values = [ { name: 'Alpha' }, { name: 'Beta' }, { name: 'Gamma' } ]; const selected_array = [ [values[1]], [], [values[2]] ]; export default { props: { values, selected_array }, html: ` <div> <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> </div> <div> <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></p> </div> <div> <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>Gamma</p> </div> `, ssrHtml: ` <div> <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> </div> <div> <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></p> </div> <div> <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]" checked> Gamma </label> <p>Gamma</p> </div> `, 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); assert.equal(inputs[3].checked, false); assert.equal(inputs[4].checked, false); assert.equal(inputs[5].checked, false); assert.equal(inputs[6].checked, false); assert.equal(inputs[7].checked, false); assert.equal(inputs[8].checked, true); const event = new window.Event('change'); inputs[0].checked = true; await inputs[0].dispatchEvent(event); assert.htmlEqual(target.innerHTML, ` <div> <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> </div> <div> <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></p> </div> <div> <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>Gamma</p> </div> `); inputs[3].checked = true; await inputs[3].dispatchEvent(event); assert.htmlEqual(target.innerHTML, ` <div> <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> </div> <div> <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</p> </div> <div> <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>Gamma</p> </div> `); inputs[8].checked = false; await inputs[8].dispatchEvent(event); assert.htmlEqual(target.innerHTML, ` <div> <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> </div> <div> <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</p> </div> <div> <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></p> </div> `); component.selected_array = [[values[1], values[2]], [values[2]]]; assert.equal(inputs[0].checked, false); assert.equal(inputs[1].checked, true); assert.equal(inputs[2].checked, true); assert.equal(inputs[3].checked, false); assert.equal(inputs[4].checked, false); assert.equal(inputs[5].checked, true); assert.htmlEqual(target.innerHTML, ` <div> <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> </div> <div> <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>Gamma</p> </div> `); } };