rsnext/test/e2e/favicon-short-circuit/favicon-short-circuit.test.ts
Wyatt Johnson 962ce0dcee
Short circut 404's for /favicon.ico in development (#54747)
In development, it's common to have a project without a favicon.ico in the public or static folders. This short circuits the route process in development so it doesn't compile the not found page for every page request.

Co-authored-by: Tim Neutkens <6324199+timneutkens@users.noreply.github.com>
2023-08-30 16:15:19 +00:00

38 lines
1.2 KiB
TypeScript

import { createNextDescribe } from 'e2e-utils'
createNextDescribe(
'favicon-short-circuit',
{
files: __dirname,
},
({ next, isNextDev, isNextStart }) => {
if (isNextDev) {
it('should short circuit the favicon in development', async () => {
const res = await next.fetch('/favicon.ico')
// Expect we got the right status and headers.
expect(res.status).toBe(404)
expect(res.headers.get('content-type')).toBeNull()
// Expect we got no body.
const text = await res.text()
expect(text).toBeEmpty()
// Expect we didn't compile the not found route.
expect(next.cliOutput).not.toContain('compiling /not-found')
})
} else if (isNextStart) {
it('should not short circuit the favicon in production', async () => {
const res = await next.fetch('/favicon.ico')
// Expect we got the right status and headers.
expect(res.status).toBe(404)
expect(res.headers.get('content-type')).toBe('text/html; charset=utf-8')
// Expect we got the right body.
const html = await res.text()
expect(html).toContain('<html>')
})
}
}
)