From 18edce0520da16f88babbb390b8fa7997725cc60 Mon Sep 17 00:00:00 2001 From: eps1lon Date: Wed, 21 Aug 2024 14:36:57 +0200 Subject: [PATCH] Ensure vendored `react-dom/server.browser` is used Silly oversight that we still need that alias. I need to find out how the existing aliasing from `/server` to `/server.browser` works in browser builds. Also confusing that CI originally didn't catch that mistake. --- .../next/src/build/create-compiler-aliases.ts | 1 + .../app-dir/ssr-in-rsc/ssr-in-rsc.test.ts | 46 +++++++++++++++++-- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/packages/next/src/build/create-compiler-aliases.ts b/packages/next/src/build/create-compiler-aliases.ts index 06f9e77515e89..7de4da0155241 100644 --- a/packages/next/src/build/create-compiler-aliases.ts +++ b/packages/next/src/build/create-compiler-aliases.ts @@ -266,6 +266,7 @@ export function createRSCAliases( 'react/compiler-runtime$': `next/dist/compiled/react${bundledReactChannel}/compiler-runtime`, 'react-dom/client$': `next/dist/compiled/react-dom${bundledReactChannel}/client`, 'react-dom/server$': `next/dist/compiled/react-dom${bundledReactChannel}/server`, + 'react-dom/server.browser$': `next/dist/compiled/react-dom${bundledReactChannel}/server.browser`, 'react-dom/static$': `next/dist/compiled/react-dom${bundledReactChannel}/static`, 'react-dom/static.edge$': `next/dist/compiled/react-dom${bundledReactChannel}/static.edge`, 'react-dom/static.browser$': `next/dist/compiled/react-dom${bundledReactChannel}/static.browser`, diff --git a/test/development/app-dir/ssr-in-rsc/ssr-in-rsc.test.ts b/test/development/app-dir/ssr-in-rsc/ssr-in-rsc.test.ts index 5602eee3721c7..2f38cf34080cb 100644 --- a/test/development/app-dir/ssr-in-rsc/ssr-in-rsc.test.ts +++ b/test/development/app-dir/ssr-in-rsc/ssr-in-rsc.test.ts @@ -39,8 +39,8 @@ describe('react-dom/server in React Server environment', () => { '/exports/app-code/react-dom-server-browser-explicit' ) + await assertNoRedbox(browser) if (isTurbopack) { - await assertNoRedbox(browser) if (isReactExperimental) { expect(await browser.elementByCss('main').text()) .toMatchInlineSnapshot(` @@ -83,7 +83,47 @@ describe('react-dom/server in React Server environment', () => { `) } } else { - await assertHasRedbox(browser) + if (isReactExperimental) { + expect(await browser.elementByCss('main').text()) + .toMatchInlineSnapshot(` + "{ + "default": [ + "renderToReadableStream", + "renderToStaticMarkup", + "renderToString", + "resume", + "version" + ], + "named": [ + "default", + "renderToReadableStream", + "renderToStaticMarkup", + "renderToString", + "resume", + "version" + ] + }" + `) + } else { + expect(await browser.elementByCss('main').text()) + .toMatchInlineSnapshot(` + "{ + "default": [ + "renderToReadableStream", + "renderToStaticMarkup", + "renderToString", + "version" + ], + "named": [ + "default", + "renderToReadableStream", + "renderToStaticMarkup", + "renderToString", + "version" + ] + }" + `) + } } const redbox = { description: await getRedboxDescription(browser), @@ -99,7 +139,7 @@ describe('react-dom/server in React Server environment', () => { } else { expect(redbox).toMatchInlineSnapshot(` { - "description": "Error: react-dom/server is not supported in React Server Components.", + "description": null, "source": null, } `)