diff --git a/test/e2e/app-dir/rsc-basic.test.ts b/test/e2e/app-dir/rsc-basic.test.ts index 1bf806767572145..713806074c16948 100644 --- a/test/e2e/app-dir/rsc-basic.test.ts +++ b/test/e2e/app-dir/rsc-basic.test.ts @@ -64,6 +64,45 @@ describe('app dir - rsc basics', () => { return } + it('should correctly render page returning null', async () => { + const homeHTML = await renderViaHTTP(next.url, '/return-null/page') + const $ = cheerio.load(homeHTML) + expect($('#return-null-layout').html()).toBeEmpty() + }) + + it('should correctly render component returning null', async () => { + const homeHTML = await renderViaHTTP(next.url, '/return-null/component') + const $ = cheerio.load(homeHTML) + expect($('#return-null-layout').html()).toBeEmpty() + }) + + it('should correctly render layout returning null', async () => { + const homeHTML = await renderViaHTTP(next.url, '/return-null/layout') + const $ = cheerio.load(homeHTML) + expect($('#return-null-layout').html()).toBeEmpty() + }) + + it('should correctly render page returning undefined', async () => { + const homeHTML = await renderViaHTTP(next.url, '/return-undefined/page') + const $ = cheerio.load(homeHTML) + expect($('#return-undefined-layout').html()).toBeEmpty() + }) + + it('should correctly render component returning undefined', async () => { + const homeHTML = await renderViaHTTP( + next.url, + '/return-undefined/component' + ) + const $ = cheerio.load(homeHTML) + expect($('#return-undefined-layout').html()).toBeEmpty() + }) + + it('should correctly render layout returning undefined', async () => { + const homeHTML = await renderViaHTTP(next.url, '/return-undefined/layout') + const $ = cheerio.load(homeHTML) + expect($('#return-undefined-layout').html()).toBeEmpty() + }) + it('should render server components correctly', async () => { const homeHTML = await renderViaHTTP(next.url, '/', null, { headers: { diff --git a/test/e2e/app-dir/rsc-basic/app/return-null/component/component.js b/test/e2e/app-dir/rsc-basic/app/return-null/component/component.js new file mode 100644 index 000000000000000..fff7432b96cd3a6 --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-null/component/component.js @@ -0,0 +1,3 @@ +export default function Component() { + return null +} diff --git a/test/e2e/app-dir/rsc-basic/app/return-null/component/page.js b/test/e2e/app-dir/rsc-basic/app/return-null/component/page.js new file mode 100644 index 000000000000000..11af371bb967efe --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-null/component/page.js @@ -0,0 +1,5 @@ +import Component from './component' + +export default function Page() { + return +} diff --git a/test/e2e/app-dir/rsc-basic/app/return-null/layout.js b/test/e2e/app-dir/rsc-basic/app/return-null/layout.js new file mode 100644 index 000000000000000..f22bb0fb80afc20 --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-null/layout.js @@ -0,0 +1,3 @@ +export default function Layout({ children }) { + return
{children}
+} diff --git a/test/e2e/app-dir/rsc-basic/app/return-null/layout/layout.js b/test/e2e/app-dir/rsc-basic/app/return-null/layout/layout.js new file mode 100644 index 000000000000000..703a5922a1b92e7 --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-null/layout/layout.js @@ -0,0 +1,3 @@ +export default function Layout() { + return null +} diff --git a/test/e2e/app-dir/rsc-basic/app/return-null/layout/page.js b/test/e2e/app-dir/rsc-basic/app/return-null/layout/page.js new file mode 100644 index 000000000000000..2e55ad1b6db8e1b --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-null/layout/page.js @@ -0,0 +1,3 @@ +export default function Page() { + return
+} diff --git a/test/e2e/app-dir/rsc-basic/app/return-null/page/page.js b/test/e2e/app-dir/rsc-basic/app/return-null/page/page.js new file mode 100644 index 000000000000000..c17431379f962fe --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-null/page/page.js @@ -0,0 +1,3 @@ +export default function Page() { + return null +} diff --git a/test/e2e/app-dir/rsc-basic/app/return-undefined/component/component.js b/test/e2e/app-dir/rsc-basic/app/return-undefined/component/component.js new file mode 100644 index 000000000000000..c6be8faf00884ac --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-undefined/component/component.js @@ -0,0 +1 @@ +export default function Component() {} diff --git a/test/e2e/app-dir/rsc-basic/app/return-undefined/component/page.js b/test/e2e/app-dir/rsc-basic/app/return-undefined/component/page.js new file mode 100644 index 000000000000000..11af371bb967efe --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-undefined/component/page.js @@ -0,0 +1,5 @@ +import Component from './component' + +export default function Page() { + return +} diff --git a/test/e2e/app-dir/rsc-basic/app/return-undefined/layout.js b/test/e2e/app-dir/rsc-basic/app/return-undefined/layout.js new file mode 100644 index 000000000000000..e8f4ac88a45c351 --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-undefined/layout.js @@ -0,0 +1,3 @@ +export default function Layout({ children }) { + return
{children}
+} diff --git a/test/e2e/app-dir/rsc-basic/app/return-undefined/layout/layout.js b/test/e2e/app-dir/rsc-basic/app/return-undefined/layout/layout.js new file mode 100644 index 000000000000000..538b725feb4c34d --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-undefined/layout/layout.js @@ -0,0 +1 @@ +export default function Layout() {} diff --git a/test/e2e/app-dir/rsc-basic/app/return-undefined/layout/page.js b/test/e2e/app-dir/rsc-basic/app/return-undefined/layout/page.js new file mode 100644 index 000000000000000..2e55ad1b6db8e1b --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-undefined/layout/page.js @@ -0,0 +1,3 @@ +export default function Page() { + return
+} diff --git a/test/e2e/app-dir/rsc-basic/app/return-undefined/page/page.js b/test/e2e/app-dir/rsc-basic/app/return-undefined/page/page.js new file mode 100644 index 000000000000000..b454a79bc8f1984 --- /dev/null +++ b/test/e2e/app-dir/rsc-basic/app/return-undefined/page/page.js @@ -0,0 +1 @@ +export default function Page() {}