(page: Page, selector: string)
| 12 | } |
| 13 | |
| 14 | export async function withAnimationObserver(page: Page, selector: string) { |
| 15 | await page.waitForSelector(selector) |
| 16 | await page.evaluate(() => { |
| 17 | const w = window as any |
| 18 | if (!w.__aa__) { |
| 19 | w.__aa__ = { |
| 20 | activeAnimations(element: Element) { |
| 21 | const anims = (element.getAnimations ? element.getAnimations({ subtree: true }) : []) as Animation[] |
| 22 | return anims.filter((a) => a.playState === 'running' || (a.currentTime && a.effect)).length |
| 23 | }, |
| 24 | } |
| 25 | } |
| 26 | }) |
| 27 | return { |
| 28 | count: async () => page.evaluate((sel) => (window as any).__aa__.activeAnimations(document.querySelector(sel)!), selector), |
| 29 | } |
| 30 | } |
| 31 | |
| 32 | export async function waitForActiveAnimations(page: Page, selector: string, timeoutMs = 1000) { |
| 33 | await page.waitForFunction( |
no outgoing calls
no test coverage detected
searching dependent graphs…