// https://github.com/sveltejs/svelte/issues/7884
export default {
	async test({ assert, target, component, window }) {
		let inputs = target.querySelectorAll('input');
		assert.htmlEqual(target.innerHTML, `
			
{"foo":[],"bar":[]}
			foo
			
			bar
			
		`);
		const event = new window.Event('change');
		inputs[0].checked = true;
		await inputs[0].dispatchEvent(event);
		inputs[2].checked = true;
		await inputs[2].dispatchEvent(event);
		inputs[3].checked = true;
		await inputs[3].dispatchEvent(event);
		assert.htmlEqual(target.innerHTML, `
			{"foo":[1,3],"bar":[1]}
			foo
			
			bar
					
		`);
		
		await component.update();
		assert.htmlEqual(target.innerHTML, `
			{"foo":[1,3],"bar":[1],"qux":[]}
			qux
			
		`);
		inputs = target.querySelectorAll('input');
		inputs[0].checked = true;
		await inputs[0].dispatchEvent(event);
		assert.htmlEqual(target.innerHTML, `
			{"foo":[1,3],"bar":[1],"qux":[4]}
			qux
			
		`);
		assert.equal(inputs[0].checked, true);
		assert.equal(inputs[1].checked, false);
		assert.equal(inputs[2].checked, false);
	}
};