rsnext/test/e2e/app-dir
Andrew Clark b83e0f5843
[PPR Navs] Bugfix: Dynamic data never streams in if prefetch entry is stale (#59833)
Adds a regression test and a fix for a bug that sometimes happens when a
prefetched route on the client becomes stale — the app would get stuck
in a loading state.

The problem was the condition I used to fallback to the non-PPR
implementation, inside navigateReducer. It was too narrow, causing
prefetched segments that contained dynamic holes to sometimes be treated
as if they were complete. The net effect was that the dynamic data would
never stream in, and the page would get stuck in a fallback state until
the stale prefetch was eventually purged from the cache, or the user
refreshed the page.

The reason the mistake happened was, as an incremental step, I decided
to fallback to the non-PPR implementation for any case where I hadn't
yet implemented the equivalent functionality. I think still think this
is a good strategy, despite the mistake, but I'm eager to get everything
migrated to the new model as soon as possible.


Closes NEXT-1920
2023-12-21 07:49:30 -08:00
..
_allow-underscored-root-directory Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
actions Add test for importing client components from server actions (#59615) 2023-12-14 13:23:55 +01:00
actions-allowed-origins Change allowed forwarded hosts to be allowed origins for Server Actions (#58023) 2023-11-08 11:20:32 +01:00
actions-navigation Remove the experimental serverActions flag (#57145) 2023-10-20 20:45:25 +00:00
app Fix CI: Skip test in PPR dev mode, too (#59817) 2023-12-20 14:22:30 -05:00
app-a11y Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
app-alias Update default moduleResolution in tsconfig.json from node to bundler (#51957) 2023-07-18 15:11:09 +00:00
app-basepath test: merge base path tests (#55069) 2023-09-06 17:20:47 +00:00
app-client-cache app-router: tweak prefetch cache status heuristics (#53864) 2023-08-20 11:25:48 +00:00
app-compilation Fix HMR for missing dependencies in next-app-loader (#51778) 2023-06-25 19:26:09 +00:00
app-config-crossorigin fix(#53190): add missing crossOrigin to assetsPrefix resources (#56311) 2023-10-02 17:21:49 +00:00
app-css Turbopack: switch to a single client components entrypoint (#59352) 2023-12-08 08:24:08 +01:00
app-css-pageextensions Use consistent name for App Router tests (#56352) 2023-10-06 11:06:06 +02:00
app-edge fix: next dev with edge runtime on windows (#56502) 2023-10-10 14:03:03 +00:00
app-edge-root-layout Fix static metadata routes runtime when root layout is in edge runtime (#50351) 2023-05-25 15:39:57 -07:00
app-external Transpile all code on app browser layer (#59569) 2023-12-20 17:08:07 +01:00
app-fetch-deduping dedupe pending revalidation requests (#58990) 2023-11-28 14:38:59 +00:00
app-invalid-revalidate Add unstable_cache validate test case (#59828) 2023-12-20 18:00:23 -06:00
app-middleware Use consistent name for App Router tests (#56352) 2023-10-06 11:06:06 +02:00
app-prefetch remove additional static prefetch code (#59313) 2023-12-05 21:29:23 -08:00
app-prefetch-false type check tests (and convert next-test-utils.js to ts) (#51071) 2023-06-23 17:42:50 +00:00
app-prefetch-false-loading remove optimistic navigation behavior when prefetch is false (#58413) 2023-11-16 11:58:17 +01:00
app-prefetch-static Reland static prefetches & fix prefetch bailout behavior (#56228) 2023-10-02 17:12:55 +00:00
app-rendering Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
app-routes route handlers: make req.cookies opt you into dynamic (#58769) 2023-11-22 14:29:01 +00:00
app-routes-trailing-slash Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
app-simple-routes Turbopack: add edge app routes (#53387) 2023-08-07 13:00:06 +02:00
app-static Ensure we validate revalidate configs properly (#59822) 2023-12-20 17:16:35 -06:00
app-validation Use consistent name for App Router tests (#56352) 2023-10-06 11:06:06 +02:00
asset-prefix Add new build and test workflow (#50436) 2023-05-27 21:02:31 -07:00
async-component-preload Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
autoscroll-with-css-modules Skip Babel tests for Turbopack (#56091) 2023-09-27 16:12:43 +02:00
back-button-download-bug chore(next/image)!: mark domains as deprecated in favor remotePatterns (#57062) 2023-10-19 20:24:48 +00:00
build-size Improve performance of String.prototype.split uses (#56746) 2023-10-19 00:25:15 +00:00
chunk-loading App Router - preinitialize chunks during SSR (#54752) 2023-10-03 21:40:25 +00:00
create-next-app-template Update default moduleResolution in tsconfig.json from node to bundler (#51957) 2023-07-18 15:11:09 +00:00
create-root-layout Polish auto create layout warning color (#57190) 2023-10-21 19:21:22 +00:00
crypto-globally-available Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
draft-mode Allow next/headers in middleware & draftMode in edge runtime (#53465) 2023-08-02 20:22:35 +00:00
dynamic Remove client only dynamic chunks from edge bundle (#56761) 2023-11-16 15:10:28 +00:00
dynamic-href Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
edge-route-catchall fix edge route catch-all param parsing (#59343) 2023-12-06 12:21:28 -08:00
edge-route-rewrite fix rewrites to edge routes (#58797) 2023-11-23 05:25:00 +00:00
edge-runtime-node-compatibility Update default moduleResolution in tsconfig.json from node to bundler (#51957) 2023-07-18 15:11:09 +00:00
emotion-js Fix emotion-js transform for server components (#54284) 2023-08-20 03:14:16 +00:00
error-boundary-navigation Fix root not-found page tree loader structure (#54080) 2023-08-16 15:10:08 +00:00
externals Turbopack + app router: always use externals for predefined packages (#56440) 2023-10-06 19:08:01 +00:00
front-redirect-issue Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
global-error Fix next internal is missing in flight manifest (#59085) 2023-11-30 16:36:14 +01:00
headers-static-bailout Add docs page for uncaught DynamicServerErrors (#53402) 2023-08-08 12:49:53 +02:00
hello-world Bail out of 404 page when favicon.ico doesn't exist (#50795) 2023-06-06 10:58:40 +02:00
hooks Should not show no index for client rendering bailout (#59531) 2023-12-13 11:03:11 +01:00
i18n-hybrid Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
import Use consistent name for App Router tests (#56352) 2023-10-06 11:06:06 +02:00
interception-dynamic-segment fix interception routes with dynamic segments (#59273) 2023-12-05 08:47:40 -08:00
interception-middleware-rewrite fix behavior when revisiting an intercepted route (#59168) 2023-12-01 08:54:01 -08:00
interception-route-groups fix default handling in route groups that handle interception (#59752) 2023-12-20 08:07:31 -08:00
interoperability-with-pages improve error DX on pages with RSC build errors (#52843) 2023-07-20 00:32:57 +00:00
layout-params Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
logging fixes the logging by showing full URLs only on demand (#58088) 2023-12-07 20:54:34 +01:00
mdx Fix client reference proxies (#57301) 2023-10-24 00:24:22 +00:00
metadata Support generating multi-meta tahs for metadata api other prop (#59106) 2023-11-30 16:44:49 +01:00
metadata-dynamic-routes Upgrade og dependencies (#59541) 2023-12-21 14:50:57 +01:00
metadata-edge types: cover the tests with root tsconfig.json (#59550) 2023-12-13 11:55:02 +01:00
metadata-missing-metadata-base Polish unsupported metadata warning with doc link (#58750) 2023-11-23 05:42:20 +00:00
metadata-suspense Remove throw for unknown messages in hot-reloader-client (#57353) 2023-11-03 01:06:53 +00:00
mjs-as-extension Enable .mjs extension config in Turbopack (#58825) 2023-11-23 14:17:36 +00:00
modularizeimports Fix bugs with baseUrl and mdxRs (#58968) 2023-11-28 10:50:14 +01:00
navigation fix inconsistent scroll restoration behavior (#59366) 2023-12-07 11:17:15 -08:00
next-config Avoid loading Next.js config again in render workers (#52587) 2023-07-12 11:21:05 +00:00
next-font Add app router name to font tests (#59257) 2023-12-04 20:25:41 +01:00
next-image test(next-image): adjust assertion compatible to turbopack (#57350) 2023-10-24 22:25:57 +00:00
not-found Ensure unique name for app dir css tests (#56088) 2023-09-27 18:38:01 +02:00
not-found-default Fix group routes custom root not-found (#54931) 2023-09-03 20:15:24 +00:00
pages-to-app-routing Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
parallel-routes-and-interception Fix: expected "catch all routes" are not matched in “parallel routes" (#58368) 2023-11-13 23:26:45 +01:00
parallel-routes-not-found Recover not found errors from flight data to render with proper boundary (#53703) 2023-08-12 08:41:47 +00:00
parallel-routes-revalidation Fix parallel routes with server actions / revalidating router cache (#59585) 2023-12-15 15:51:14 +00:00
params-hooks-compat Make useSearchParams and useParams compatible between app and pages router (#55280) 2023-09-18 12:42:20 +00:00
ppr Partial Pre Rendering Headers (#59447) 2023-12-14 13:14:06 -07:00
ppr-errors Disable more Turbopack build tests (#59245) 2023-12-04 14:23:32 +00:00
ppr-full Partial Pre Rendering Headers (#59447) 2023-12-14 13:14:06 -07:00
ppr-navigations [PPR Navs] Bugfix: Dynamic data never streams in if prefetch entry is stale (#59833) 2023-12-21 07:49:30 -08:00
revalidate-dynamic revalidate APIs should make route handlers dynamic (#58466) 2023-11-16 11:57:55 +01:00
rewrites-redirects Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
root-layout Ensure root layout only render once per request (#52589) 2023-07-13 17:34:31 +02:00
root-layout-redirect Update default moduleResolution in tsconfig.json from node to bundler (#51957) 2023-07-18 15:11:09 +00:00
root-layout-render-once Ensure root layout only render once per request (#52589) 2023-07-13 17:34:31 +02:00
route-page-manifest-bug Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
router-autoscroll Fix scroll bailout logic when targeting fixed/sticky elements (#53873) 2023-08-15 13:31:39 +00:00
router-stuck-dynamic-static-segment Update default moduleResolution in tsconfig.json from node to bundler (#51957) 2023-07-18 15:11:09 +00:00
rsc-basic Fix CI: Skip test in PPR dev mode, too (#59817) 2023-12-20 14:22:30 -05:00
search-params-react-key Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
searchparams-static-bailout Update default moduleResolution in tsconfig.json from node to bundler (#51957) 2023-07-18 15:11:09 +00:00
server-actions-relative-redirect Remove the experimental serverActions flag (#57145) 2023-10-20 20:45:25 +00:00
set-cookies Fix mjs import for Turbopack test (#56354) 2023-10-03 13:33:04 +02:00
shallow-routing Ensure original history is read in effect (#58861) 2023-12-03 09:18:34 +01:00
similar-pages-paths Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
taint Expose Experimental Taint APIs (#56507) 2023-10-19 19:02:37 -07:00
test-template/{{ toFileName name }} Remove experimental config from create-next-app (#49241) 2023-05-05 00:22:28 -07:00
third-parties Fix third party typings (#59503) 2023-12-12 01:07:17 +01:00
trailingslash Add new build and test workflow (#50436) 2023-05-27 21:02:31 -07:00
underscore-ignore-app-paths Update default moduleResolution in tsconfig.json from node to bundler (#51957) 2023-07-18 15:11:09 +00:00
use-params Make useSearchParams and useParams compatible between app and pages router (#55280) 2023-09-18 12:42:20 +00:00
use-selected-layout-segment-s chore: upgrade jest (#56909) 2023-10-19 17:38:24 +00:00
with-babel Update tests for Turbopack (#59354) 2023-12-07 15:03:44 +01:00
with-exported-function-config chore: upgrade jest (#56909) 2023-10-19 17:38:24 +00:00
x-forwarded-headers fix: set x-forwarded-host based on request (#58500) 2023-11-16 12:00:41 +01:00