mirror of
https://github.com/hanzoai/vitest.git
synced 2026-09-24 17:04:25 +00:00
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import { beforeEach, test } from 'vitest'
|
|
import { page } from 'vitest/browser'
|
|
|
|
beforeEach(() => {
|
|
document.head.querySelectorAll('[data-trace-fixture]').forEach(node => node.remove())
|
|
document.documentElement.scrollTop = 0
|
|
document.body.innerHTML = ''
|
|
})
|
|
|
|
test('viewport media query depends on replay viewport', async () => {
|
|
const style = document.createElement('style')
|
|
style.dataset.traceFixture = ''
|
|
style.textContent = `
|
|
.trace-viewport::before { content: "narrow"; }
|
|
@media (min-width: 400px) {
|
|
.trace-viewport::before { content: "wide"; }
|
|
}
|
|
`
|
|
document.head.append(style)
|
|
document.body.innerHTML = '<div class="trace-viewport">viewport-sensitive layout</div>'
|
|
await page.mark('viewport sensitive layout rendered')
|
|
})
|
|
|
|
test('document scroll is restored from trace metadata', async () => {
|
|
document.body.innerHTML = `
|
|
<main style="height: 2000px; padding-top: 900px">
|
|
<button>Scrolled document button</button>
|
|
</main>
|
|
`
|
|
window.scrollTo(0, 450)
|
|
await page.getByRole('button').mark('document scrolled before mark')
|
|
})
|
|
|
|
test('overflow element scroll is stored in snapshot payload', async () => {
|
|
document.body.innerHTML = `
|
|
<section
|
|
data-testid="scroll-box"
|
|
style="height: 80px; width: 180px; overflow: auto; border: 1px solid black"
|
|
>
|
|
<div style="height: 240px; padding-top: 150px">
|
|
<button>Nested scrolled button</button>
|
|
</div>
|
|
</section>
|
|
`
|
|
const scrollBox = document.querySelector<HTMLElement>('[data-testid="scroll-box"]')!
|
|
scrollBox.scrollTop = 120
|
|
await page.getByTestId('scroll-box').mark('overflow container scrolled before mark')
|
|
})
|