Files
next.js/test/development/dev-indicator/dev-indicator.test.ts
T
Zack TannerandGitHub e071b839e4 [dev-overlay]: wire up ISR status for pages router (#76458)
The static indicator was added in the new dev overlay but wasn't hooked up to pages router. This wires that up so they're properly marked static/dynamic. 

Closes NDX-897
2025-02-25 12:05:45 -08:00

119 lines
3.5 KiB
TypeScript

import { nextTestSetup } from 'e2e-utils'
import { getRouteTypeFromDevToolsIndicator, retry } from 'next-test-utils'
describe('dev indicator - route type', () => {
const { next } = nextTestSetup({
files: __dirname,
})
describe('getServerSideProps', () => {
it('should update when going from dynamic -> static', async () => {
const browser = await next.browser('/gssp')
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Dynamic')
})
// validate static -> dynamic updates
await browser.elementByCss("[href='/']").click()
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Static')
})
})
it('should update when going from static -> dynamic', async () => {
const browser = await next.browser('/')
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Static')
})
// validate static -> dynamic updates
await browser.elementByCss("[href='/gssp']").click()
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Dynamic')
})
})
it('should be marked dynamic on first load', async () => {
const browser = await next.browser('/gssp')
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Dynamic')
})
})
})
describe('getInitialProps', () => {
it('should be marked dynamic on first load', async () => {
const browser = await next.browser('/gip')
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Dynamic')
})
})
it('should update when going from dynamic -> static', async () => {
const browser = await next.browser('/gip')
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Dynamic')
})
await browser.elementByCss("[href='/']").click()
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Static')
})
})
it('should update when going from static -> dynamic', async () => {
const browser = await next.browser('/')
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Static')
})
await browser.elementByCss("[href='/gip']").click()
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Dynamic')
})
})
})
describe('getStaticPaths', () => {
it('should be marked static on first load', async () => {
const browser = await next.browser('/pregenerated')
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Static')
})
})
it('should update when going from dynamic -> static', async () => {
const browser = await next.browser('/gssp')
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Dynamic')
})
await browser.elementByCss("[href='/pregenerated']").click()
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Static')
})
})
})
it('should have route type as static by default for static page', async () => {
const browser = await next.browser('/')
await retry(async () => {
expect(await getRouteTypeFromDevToolsIndicator(browser)).toBe('Static')
})
})
})