rsnext/test/ppr-tests-manifest.json
Zack Tanner d371f648d2
Renew prefetch cache entry after update from server (#61573)
### What
When a prefetch cache entry becomes "stale", it'll remain stale until
eventually it gets evicted. However during that stale window, the cache
is never revalidated, and so instant navigations stop working and data
is fetched from origin every navigation.

### Why
The `lastUsedTime` entry on the prefetch cache is currently only updated
after the first read. Once it becomes stale, `applyFlightData`'s
recursive functions will see that there is no longer a reusable prefetch
cache entry, and will trigger a lazy fetch of the new data on every
subsequent navigation.

### How
This updates prefetch cache handling to always ensure we’re using a
fresh or reusable prefetch cache entry. This means that stale prefetch
entries will be refreshed on a navigation event. As a result of this,
I’ve had to disable one of our tests that relies on this stale cache
behavior. It’s not ideal that we’re blocked on the loading boundary when
fetching child segment data—ideally we can refactor this to cache the
loading component in the CacheNode and copy it over on navigations,
similar to how ‘head’ is handled. I’ll work on this in a separate PR.

Note: The new client cache test for this is disabled in PPR for the same
reason as the other tests: auto prefetching with PPR navigations is
currently loading fresh data rather than reusing the prefetch cache.


Fixes #58969
Fixes #58723
Closes NEXT-1904
2024-02-20 09:07:18 -08:00

81 lines
3.8 KiB
JSON

{
"version": 2,
"suites": {
"test/e2e/app-dir/app-static/app-static.test.ts": {
"failed": [
"app-dir static/dynamic handling usePathname should have values from canonical url on rewrite",
"app-dir static/dynamic handling should have correct prerender-manifest entries",
"app-dir static/dynamic handling should output HTML/RSC files for static paths",
"app-dir static/dynamic handling should output debug info for static bailouts"
]
},
"test/e2e/app-dir/app-client-cache/client-cache.test.ts": {
"failed": [
"app dir client cache semantics prefetch={undefined} - default should re-use the full cache for only 30 seconds",
"app dir client cache semantics prefetch={undefined} - default should refetch below the fold after 30 seconds",
"app dir client cache semantics prefetch={undefined} - default should renew the 30s cache once the data is revalidated"
]
},
"test/e2e/app-dir/headers-static-bailout/headers-static-bailout.test.ts": {
"failed": [
"headers-static-bailout it provides a helpful link in case static generation bailout is uncaught"
]
},
"test/e2e/app-dir/error-boundary-navigation/override-node-env.test.ts": {
"failed": [
"app dir - not found navigation - with overridden node env should be able to navigate to other page from root not-found page"
]
},
"test/e2e/opentelemetry/opentelemetry.test.ts": {
"failed": [
"opentelemetry root context app router should handle RSC with fetch",
"opentelemetry incoming context propagation app router should handle RSC with fetch",
"opentelemetry incoming context propagation app router should handle route handlers in app router"
]
},
"test/e2e/app-dir/rsc-basic/rsc-basic.test.ts": {
"failed": [
"app dir - rsc basics should render initial styles of css-in-js in edge SSR correctly",
"app dir - rsc basics should render initial styles of css-in-js in nodejs SSR correctly",
"app dir - rsc basics should render server components correctly"
]
},
"test/e2e/app-dir/navigation/navigation.test.ts": {
"failed": [
"app dir - navigation redirect status code should respond with 308 status code if permanent flag is set",
"app dir - navigation redirect status code should respond with 307 status code in client component",
"app dir - navigation redirect status code should respond with 307 status code in server component",
"app dir - navigation bots should block rendering for bots and return 404 status"
]
},
"test/e2e/app-dir/app-static/app-static-custom-handler.test.ts": {
"failed": [
"app-dir static/dynamic handling should output debug info for static bailouts",
"app-dir static/dynamic handling should have correct prerender-manifest entries",
"app-dir static/dynamic handling should output HTML/RSC files for static paths"
]
},
"test/production/app-dir/unexpected-error/unexpected-error.test.ts": {
"failed": [
"unexpected-error should set response status to 500 for unexpected errors in ssr app route",
"unexpected-error should set response status to 500 for unexpected errors in isr app route"
]
}
},
"rules": {
"include": [
"test/e2e/**/*.test.{t,j}s{,x}",
"test/integration/app-*/**/*.test.{t,j}s{,x}",
"test/production/app-*/**/*.test.{t,j}s{,x}",
"test/development/app-*/**/*.test.{t,j}s{,x}"
],
"exclude": [
"test/integration/app-dir-export/**/*",
"test/e2e/app-dir/next-font/**/*",
"test/e2e/app-dir/ppr/**/*",
"test/e2e/app-dir/ppr-*/**/*",
"test/e2e/app-dir/app-prefetch*/**/*",
"test/e2e/app-dir/searchparams-static-bailout/searchparams-static-bailout.test.ts"
]
}
}