diff --git a/test/integration/react-18/prerelease/components/dynamic-suspense.js b/test/integration/react-18/prerelease/components/dynamic-suspense.js index 740ebe411ffca..3ec76eb42e6b9 100644 --- a/test/integration/react-18/prerelease/components/dynamic-suspense.js +++ b/test/integration/react-18/prerelease/components/dynamic-suspense.js @@ -2,8 +2,8 @@ import { Suspense } from 'react' import dynamic from 'next/dynamic' const Hello = dynamic(() => import('./hello'), { - ssr: true, - suspense: true, + ssr: false, + unstable_suspense: false, }) export default function SuspenseNoSSR({ thrown }) { diff --git a/test/integration/react-18/test/dynamic.js b/test/integration/react-18/test/dynamic.js index 45201aaff8662..5f1be25b0f7c4 100644 --- a/test/integration/react-18/test/dynamic.js +++ b/test/integration/react-18/test/dynamic.js @@ -8,13 +8,13 @@ import { File } from 'next-test-utils' const appDir = join(__dirname, '../prerelease') const page = new File(join(appDir, 'components/dynamic-suspense.js')) -function writeDynamicTestComponent({ ssr = false, suspense = false }) { +function writeDynamicTestComponent({ ssr, suspense = false }) { const content = `import { Suspense } from 'react' import dynamic from 'next/dynamic' const Hello = dynamic(() => import('./hello'), { - ssr: ${ssr}, - suspense: ${suspense}, + ${typeof ssr !== 'undefined' ? `ssr: ${ssr},` : ''} + unstable_suspense: ${suspense}, }) export default function SuspenseNoSSR({ thrown }) { @@ -34,11 +34,11 @@ export default (context, render) => { } describe('suspense:true option', () => { + beforeAll(() => writeDynamicTestComponent({ suspense: true })) + afterAll(() => page.restore()) + describe('promise is thrown on server side', () => { // let `ssr` option be auto overridden - beforeAll(() => writeDynamicTestComponent({ suspense: true })) - afterAll(() => page.restore()) - it('should render the fallback on server side', async () => { const $ = await get$('/suspense/thrown') const html = $('body').html() @@ -62,10 +62,11 @@ export default (context, render) => { }) describe('promise is not thrown on server side', () => { + // TODO: add case after streaming mode is supported it('should render fallback on server side', async () => { const $ = await get$('/suspense/no-thrown') const text = $('#__next').text() - expect(text).toBe('loading') + expect(text).toContain('loading') }) it('should hydrate on client side', async () => { @@ -81,28 +82,4 @@ export default (context, render) => { }) }) }) - - describe('suspense:false option', () => { - beforeAll(() => writeDynamicTestComponent({ suspense: false, ssr: false })) - afterAll(() => page.restore()) - - it('should render nothing on server side under Suspense', async () => { - const $ = await get$('/suspense/thrown') - const text = $('#__next').text() - expect(text).toBe('') - expect(JSON.parse($('#__NEXT_DATA__').html()).dynamicIds).toBeUndefined() - }) - - it('should hydrate suspenses on client side with ssr disabled', async () => { - let browser - try { - browser = await webdriver(context.appPort, '/suspense/no-thrown') - await check(() => browser.elementByCss('body').text(), /hello 18/) - } finally { - if (browser) { - await browser.close() - } - } - }) - }) }