rsnext/test/e2e/app-dir/metadata-suspense/index.test.ts
Jiachi Liu 0616f1b432
Add not found boundary and move head cache to app router (#47688)
### What?

- Add not found boundary to app router
- Move `head` cache back to app router

### Why?

We want the head to be rendered separately from body, previously to be
able to use `redirect()` and `notFound()` in `generateMetadata` we move
the head cache into layout-router to be wrapped by not found and
redirect boundaries. Since redirect boudary is already moved to
app-router, so we only need to add not found boundary and move head
cache to app router.

Notice: there's a limitation that we can't find the corresponding not
found of page if you throw notFound in generateMetadata, the root layout
+ root/default not found will be used to generate the 404 page

### How?

Closes NEXT-864
Fixes #46738

fix NEXT-888 ([link](https://linear.app/vercel/issue/NEXT-888))

---------
2023-03-30 14:08:37 -07:00

18 lines
509 B
TypeScript

import { createNextDescribe } from 'e2e-utils'
createNextDescribe(
'app dir - metadata dynamic routes',
{
files: __dirname,
skipDeployment: true,
},
({ next }) => {
it('should render metadata in head even root layout is wrapped with Suspense', async () => {
const $ = await next.render$('/')
expect($('head title').text()).toBe('My title')
expect($('head meta[name="theme-color"]').attr('content')).toBe('#eee')
expect($('body meta').length).toBe(0)
})
}
)