2022-12-19 10:20:01 +01:00
|
|
|
import { createNextDescribe } from 'e2e-utils'
|
2022-09-14 01:01:43 +02:00
|
|
|
|
2022-12-19 10:20:01 +01:00
|
|
|
createNextDescribe(
|
|
|
|
'app-dir trailingSlash handling',
|
|
|
|
{
|
2022-12-21 14:16:52 +01:00
|
|
|
files: __dirname,
|
2022-12-19 10:20:01 +01:00
|
|
|
skipDeployment: true,
|
|
|
|
},
|
|
|
|
({ next }) => {
|
|
|
|
it('should redirect route when requesting it directly', async () => {
|
2023-01-05 16:31:03 +01:00
|
|
|
const res = await next.fetch('/a', {
|
|
|
|
redirect: 'manual',
|
|
|
|
})
|
2022-12-19 10:20:01 +01:00
|
|
|
expect(res.status).toBe(308)
|
2023-05-28 06:02:31 +02:00
|
|
|
expect(new URL(res.headers.get('location'), next.url).pathname).toBe(
|
|
|
|
'/a/'
|
|
|
|
)
|
2022-09-14 01:01:43 +02:00
|
|
|
})
|
|
|
|
|
2022-12-19 10:20:01 +01:00
|
|
|
it('should render link with trailing slash', async () => {
|
|
|
|
const $ = await next.render$('/')
|
|
|
|
expect($('#to-a-trailing-slash').attr('href')).toBe('/a/')
|
|
|
|
})
|
2022-09-14 01:01:43 +02:00
|
|
|
|
2022-12-19 10:20:01 +01:00
|
|
|
it('should redirect route when requesting it directly by browser', async () => {
|
|
|
|
const browser = await next.browser('/a')
|
|
|
|
expect(await browser.waitForElementByCss('#a-page').text()).toBe('A page')
|
|
|
|
})
|
2022-09-14 01:01:43 +02:00
|
|
|
|
2022-12-19 10:20:01 +01:00
|
|
|
it('should redirect route when clicking link', async () => {
|
|
|
|
const browser = await next.browser('/')
|
|
|
|
await browser
|
|
|
|
.elementByCss('#to-a-trailing-slash')
|
|
|
|
.click()
|
|
|
|
.waitForElementByCss('#a-page')
|
|
|
|
expect(await browser.waitForElementByCss('#a-page').text()).toBe('A page')
|
|
|
|
})
|
|
|
|
}
|
|
|
|
)
|