export default { skip_if_ssr: true, // TODO delete this line, once binding works props: { x: 'initial' }, html: ` <p>x: initial</p> <button class="foo">foo</button> <p>foo x: initial</p> <button class="bar">bar</button> <p>bar x: initial</p> <button class="baz">baz</button> <p>baz x: initial</p> `, async test({ assert, component, target, window }) { const click = new window.MouseEvent('click'); const buttons = [...target.querySelectorAll('button')]; await buttons[0].dispatchEvent(click); assert.equal(component.x, 'p'); assert.htmlEqual(target.innerHTML, ` <p>x: p</p> <button class="foo">foo</button> <p>foo x: p</p> <button class="bar">bar</button> <p>bar x: p</p> <button class="baz">baz</button> <p>baz x: p</p> `); await buttons[1].dispatchEvent(click); assert.equal(component.x, 'q'); assert.htmlEqual(target.innerHTML, ` <p>x: q</p> <button class="foo">foo</button> <p>foo x: q</p> <button class="bar">bar</button> <p>bar x: q</p> <button class="baz">baz</button> <p>baz x: q</p> `); await buttons[2].dispatchEvent(click); assert.equal(component.x, 'r'); assert.htmlEqual(target.innerHTML, ` <p>x: r</p> <button class="foo">foo</button> <p>foo x: r</p> <button class="bar">bar</button> <p>bar x: r</p> <button class="baz">baz</button> <p>baz x: r</p> `); } };