MCPcopy
hub / github.com/vercel/next.js / runTests

Function runTests

test/integration/scroll-back-restoration/test/index.test.ts:18–62  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

16let app
17
18const runTests = () => {
19 it('should restore the scroll position on navigating back', async () => {
20 const browser = await webdriver(appPort, '/')
21 await browser.eval(() =>
22 document.querySelector('#to-another').scrollIntoView()
23 )
24 const scrollRestoration = await browser.eval(
25 () => window.history.scrollRestoration
26 )
27
28 expect(scrollRestoration).toBe('manual')
29
30 const scrollX = Math.floor(await browser.eval(() => window.scrollX))
31 const scrollY = Math.floor(await browser.eval(() => window.scrollY))
32
33 expect(scrollX).not.toBe(0)
34 expect(scrollY).not.toBe(0)
35
36 await browser.eval(() => (window as any).next.router.push('/another'))
37
38 await retry(async () => {
39 const html = await browser.eval(() => document.documentElement.innerHTML)
40 expect(html).toMatch(/hi from another/)
41 })
42 await browser.eval(() => ((window as any).didHydrate = false))
43
44 await browser.eval(() => window.history.back())
45 await retry(async () => {
46 expect(await browser.eval(() => (window as any).didHydrate)).toBe(true)
47 })
48
49 const newScrollX = Math.floor(await browser.eval(() => window.scrollX))
50 const newScrollY = Math.floor(await browser.eval(() => window.scrollY))
51
52 console.log({
53 scrollX,
54 scrollY,
55 newScrollX,
56 newScrollY,
57 })
58
59 expect(scrollX).toBe(newScrollX)
60 expect(scrollY).toBe(newScrollY)
61 })
62}
63
64describe('Scroll Back Restoration Support', () => {
65 ;(process.env.TURBOPACK_BUILD ? describe.skip : describe)(

Callers 1

index.test.tsFile · 0.70

Calls 8

retryFunction · 0.90
webdriverFunction · 0.85
evalMethod · 0.80
pushMethod · 0.65
backMethod · 0.65
itFunction · 0.50
expectFunction · 0.50
logMethod · 0.45

Tested by

no test coverage detected