Files

62 lines
3.1 KiB
TypeScript

import { nextTestSetup } from 'e2e-utils'
describe('app-dir - metadata-streaming-config', () => {
const { next } = nextTestSetup({
files: __dirname,
})
it('should have the default streaming metadata config output in routes-manifest.json', async () => {
const requiredServerFiles = JSON.parse(
await next.readFile('.next/required-server-files.json')
)
expect(requiredServerFiles.config.htmlLimitedBots).toMatchInlineSnapshot(
`"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight"`
)
const prerenderManifest = JSON.parse(
await next.readFile('.next/prerender-manifest.json')
)
const { routes } = prerenderManifest
const bypassConfigs = Object.keys(routes)
// Pick the user-agent bypass config of each route
.map((route) => [
route,
routes[route].experimentalBypassFor?.find(
(bypassConfig) => bypassConfig.key === 'user-agent'
),
])
.filter(([, bypassConfig]) => Boolean(bypassConfig))
.reduce((acc, [route, bypassConfig]) => {
acc[route] = bypassConfig
return acc
}, {})
expect(bypassConfigs).toMatchInlineSnapshot(`
{
"/": {
"key": "user-agent",
"type": "header",
"value": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight",
},
"/_global-error": {
"key": "user-agent",
"type": "header",
"value": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight",
},
"/_not-found": {
"key": "user-agent",
"type": "header",
"value": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight",
},
"/ppr": {
"key": "user-agent",
"type": "header",
"value": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight",
},
}
`)
})
})