Skip to content

Commit 62f4ed6

Browse files
yamafaktorypavelfeldman
authored andcommitted
feat(unit): add click test on animated target (#655)
1 parent c04ad14 commit 62f4ed6

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

test/click.spec.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,5 +374,35 @@ module.exports.describe = function({testRunner, expect, playwright, FFOX, CHROMI
374374
await page.click('button');
375375
expect(await page.evaluate('window.clicked')).toBe(true);
376376
});
377+
it.skip(true)('should click on an animated button', async({page}) => {
378+
const buttonSize = 50;
379+
const containerWidth = 500;
380+
const transition = 500;
381+
await page.setContent(`
382+
<html>
383+
<body>
384+
<div style="border: 1px solid black; height: 50px; overflow: auto; width: ${containerWidth}px;">
385+
<button id="button" style="height: ${buttonSize}px; width: ${buttonSize}px; transition: left ${transition}ms linear 0s; left: 0; position: relative" onClick="window.clicked++">hi</button>
386+
</div>
387+
</body>
388+
<script>
389+
const animateLeft = () => {
390+
const button = document.querySelector('#button');
391+
document.querySelector('#button').style.left = button.style.left === '0px' ? '${containerWidth - buttonSize}px' : '0px';
392+
};
393+
window.clicked = 0;
394+
window.setTimeout(animateLeft, 0);
395+
window.setInterval(animateLeft, ${transition});
396+
</script>
397+
</html>
398+
`);
399+
await page.click('button');
400+
expect(await page.evaluate('window.clicked')).toBe(1);
401+
expect(await page.evaluate('document.querySelector("#button").style.left')).toBe(`${containerWidth - buttonSize}px`);
402+
await new Promise(resolve => setTimeout(resolve, 500));
403+
await page.click('button');
404+
expect(await page.evaluate('window.clicked')).toBe(2);
405+
expect(await page.evaluate('document.querySelector("#button").style.left')).toBe('0px');
406+
});
377407
});
378408
};

0 commit comments

Comments
 (0)