forked from vercel/next.js
/
layout-params.test.ts
61 lines (49 loc) · 2.06 KB
/
layout-params.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import { createNextDescribe } from 'e2e-utils'
createNextDescribe(
'app dir - layout params',
{
files: __dirname,
},
({ next }) => {
describe('basic params', () => {
it('check layout without params get no params', async () => {
const $ = await next.render$('/base/something/another')
const ids = ['#root-layout', '#lvl1-layout']
ids.forEach((divId) => {
const params = $(`${divId} > div`)
expect(params.length).toBe(0)
})
})
it("check layout renders just it's params", async () => {
const $ = await next.render$('/base/something/another')
expect($('#lvl2-layout > div').length).toBe(1)
expect($('#lvl2-param1').text()).toBe('"something"')
})
it('check topmost layout renders all params', async () => {
const $ = await next.render$('/base/something/another')
expect($('#lvl3-layout > div').length).toBe(2)
expect($('#lvl3-param1').text()).toBe('"something"')
expect($('#lvl3-param2').text()).toBe('"another"')
})
})
describe('catchall params', () => {
it('should give catchall params just to last layout', async () => {
const $ = await next.render$('/catchall/something/another')
expect($(`#root-layout > div`).length).toBe(0)
expect($('#lvl2-layout > div').length).toBe(1)
expect($('#lvl2-params').text()).toBe('["something","another"]')
})
it('should give optional catchall params just to last layout', async () => {
const $ = await next.render$('/optional-catchall/something/another')
expect($(`#root-layout > div`).length).toBe(0)
expect($('#lvl2-layout > div').length).toBe(1)
expect($('#lvl2-params').text()).toBe('["something","another"]')
})
it("should give empty optional catchall params won't give params to any layout", async () => {
const $ = await next.render$('/optional-catchall')
expect($(`#root-layout > div`).length).toBe(0)
expect($('#lvl2-layout > div').length).toBe(0)
})
})
}
)