let fulfil;

const promise = new Promise(f => {
	fulfil = f;
});

export default {
	props: {
		x: false,
		promise
	},

	test({ assert, component, target, raf }) {
		component.x = true;
		fulfil();

		return promise.then(() => {
			const div = target.querySelector('div');
			assert.equal(div.foo, 0);

			raf.tick(100);
			assert.equal(div.foo, 1);

			component.x = false;
			assert.htmlEqual(target.innerHTML, '<div></div>');

			raf.tick(150);
			assert.equal(div.foo, 0.5);

			raf.tick(200);
			assert.htmlEqual(target.innerHTML, '');
		});
	}
};