rsnext/test/e2e/i18n-disallow-multiple-locales/i18n-disallow-multiple-locales.test.ts
JJ Kasper 9f7318a8f9
Update failing i18n e2e deploy test (#47462)
This tests is currently not expected to work in the deploy mode so this
temporarily skips it for now

x-ref:
https://github.com/vercel/next.js/actions/runs/4504603973/jobs/7929514077
2023-03-23 15:53:14 -07:00

53 lines
1.5 KiB
TypeScript

import { createNextDescribe } from 'e2e-utils'
import cheerio from 'cheerio'
const config = require('./next.config')
async function verify(res, locale) {
expect(res.status).toBe(200)
// Verify that we loaded the right page and the locale is correct.
const html = await res.text()
const $ = cheerio.load(html)
expect($('#page').text()).toBe('index page')
expect($('#router-locale').text()).toBe(locale)
}
createNextDescribe(
'i18n-disallow-multiple-locales',
{
files: __dirname,
// TODO: re-enable after this behavior is corrected
skipDeployment: true,
},
({ next }) => {
it('should verify the default locale works', async () => {
const res = await next.fetch('/', { redirect: 'manual' })
await verify(res, config.i18n.defaultLocale)
})
it.each(config.i18n.locales)('/%s should 200', async (locale) => {
const res = await next.fetch(`/${locale}`, { redirect: 'manual' })
await verify(res, locale)
})
it.each(
config.i18n.locales.reduce((locales, firstLocale) => {
for (const secondLocale of config.i18n.locales) {
locales.push([firstLocale, secondLocale])
}
return locales
}, [])
)('/%s/%s should 404', async (firstLocale, secondLocale) => {
// Ensure that the double locale does not work.
const res = await next.fetch(`/${firstLocale}/${secondLocale}`, {
redirect: 'manual',
})
expect(res.status).toBe(404)
})
}
)