From 2347e3e47e789b89eba9572c9cf39dcf5a28e0c6 Mon Sep 17 00:00:00 2001 From: Joe Haddad Date: Wed, 11 Dec 2019 16:32:16 -0500 Subject: [PATCH] Adjust return value (#9712) * Adjust return value * Add delay --- packages/next/next-server/server/load-components.ts | 2 +- packages/next/next-server/server/render.tsx | 12 ++++++------ test/integration/prerender/pages/another/index.js | 2 +- test/integration/prerender/test/index.test.js | 7 ++++++- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/next/next-server/server/load-components.ts b/packages/next/next-server/server/load-components.ts index e14ed8b17bf95..d50e1097ea95e 100644 --- a/packages/next/next-server/server/load-components.ts +++ b/packages/next/next-server/server/load-components.ts @@ -19,7 +19,7 @@ export type LoadComponentsReturnType = { params: any }) => { props: any - revalidate: number | false + revalidate?: number | boolean } unstable_getStaticPaths?: () => void buildManifest?: any diff --git a/packages/next/next-server/server/render.tsx b/packages/next/next-server/server/render.tsx index 86353f8b45f2a..197dfd60b8065 100644 --- a/packages/next/next-server/server/render.tsx +++ b/packages/next/next-server/server/render.tsx @@ -156,7 +156,7 @@ type RenderOpts = { params: any | undefined }) => { props: any - revalidate: number | false + revalidate?: number | boolean } unstable_getStaticPaths?: () => void } @@ -458,14 +458,14 @@ export async function renderToHTML( `\nTo only run getStaticProps at build-time and not revalidate at runtime, you can set \`revalidate\` to \`false\`!` ) } - } else if (data.revalidate === false) { - // `false` is an allowed behavior. We'll catch `revalidate: true` and - // fall into our default behavior. - } else { - // By default, we revalidate after 1 second. This value is optimal for + } else if (data.revalidate === true) { + // When enabled, revalidate after 1 second. This value is optimal for // the most up-to-date page possible, but without a 1-to-1 // request-refresh ratio. data.revalidate = 1 + } else { + // By default, we never revalidate. + data.revalidate = false } props.pageProps = data.props diff --git a/test/integration/prerender/pages/another/index.js b/test/integration/prerender/pages/another/index.js index bcdae56698316..e1a316d071e49 100644 --- a/test/integration/prerender/pages/another/index.js +++ b/test/integration/prerender/pages/another/index.js @@ -19,7 +19,7 @@ export async function unstable_getStaticProps() { world: text, time: new Date().getTime(), }, - revalidate: 1, + revalidate: true, } } diff --git a/test/integration/prerender/test/index.test.js b/test/integration/prerender/test/index.test.js index 8f819c9faa605..5b79b4281bdf7 100644 --- a/test/integration/prerender/test/index.test.js +++ b/test/integration/prerender/test/index.test.js @@ -93,7 +93,7 @@ const expectedManifestRoutes = () => ({ }, '/default-revalidate': { dataRoute: `/_next/data/${buildId}/default-revalidate.json`, - initialRevalidateSeconds: 1, + initialRevalidateSeconds: false, srcRoute: null, }, '/something': { @@ -114,12 +114,17 @@ const navigateTest = () => { '/blog/post-1/comment-1', ] + await waitFor(2500) + await Promise.all(toBuild.map(pg => renderViaHTTP(appPort, pg))) const browser = await webdriver(appPort, '/') let text = await browser.elementByCss('p').text() expect(text).toMatch(/hello.*?world/) + // hydration + await waitFor(2500) + // go to /another await browser.elementByCss('#another').click() await browser.waitForElementByCss('#home')