export default {
	props: {
		x: false,
		y: true
	},
	test({ assert, component, target, raf }) {
		// first, toggle x — first element should snap in
		// and out while second one transitions
		component.x = true;
		let divs = target.querySelectorAll('div');
		assert.equal(divs[0].foo, undefined);
		assert.equal(divs[1].foo, 0);
		raf.tick(50);
		assert.equal(divs[0].foo, undefined);
		assert.equal(divs[1].foo, 0.5);
		raf.tick(100);
		component.x = false;
		assert.htmlEqual(target.innerHTML, `
			
snaps if x changes
			transitions if x changes
		`);
		raf.tick(150);
		assert.equal(divs[0].foo, undefined);
		assert.equal(divs[1].foo, 0.5);
		raf.tick(200);
		assert.htmlEqual(target.innerHTML, '');
		// then toggle y
		component.y = false;
		component.x = true;
		component.y = true;
		assert.htmlEqual(target.innerHTML, `
			snaps if x changes
			transitions if x changes
		`);
		divs = target.querySelectorAll('div');
		raf.tick(250);
		assert.equal(divs[0].foo, 0.5);
		assert.equal(divs[1].foo, 0.5);
		raf.tick(300);
		assert.equal(divs[0].foo, 1);
		assert.equal(divs[1].foo, 1);
		component.y = false;
		assert.htmlEqual(target.innerHTML, `
			snaps if x changes
			transitions if x changes
		`);
		raf.tick(320);
		assert.equal(divs[0].foo, 0.8);
		assert.equal(divs[1].foo, 0.8);
		raf.tick(400);
		assert.htmlEqual(target.innerHTML, '');
	},
};