rsnext/test
Zack Tanner 1337c7a3e5
fix dynamic param extraction for interception routes (#67400)
### What
When using `generateStaticParams` with interception routes, the
interception would never occur, and instead an MPA navigation would take
place to the targeted link.

### Why
For interception rewrites, we use a `__NEXT_EMPTY_PARAM__` marker (in
place of the actual param slot, eg `:locale`) for any params that are
discovered prior to the interception marker. This is because during
route resolution, the `params` for the interception route might not
contain the same `params` for the page that triggered the interception.
The dynamic params are then extracted from `FlightRouterState` at render
time. However, when `generateStaticParams` is present, the
`FlightRouterState` header is stripped from the request, so it isn't
able to extract the dynamic params and so the router thinks the new tree
is a new root layout, hence the MPA navigation.

### How
This removes the `__NEXT_EMPTY_PARAM__` hack and several spots where we
were forcing interception routes to be dynamic as a workaround to the
above bug. Now when resolving the route, if the request was to an
interception route, we extract the dynamic params from the request
before constructing the final rewritten URL. This will ensure that the
params from the "current" route are available in addition to the params
from the interception route without needing to defer until render.

Fixes #65192
Fixes #52880
2024-07-03 11:21:07 -07:00
..
.stats-app chore: update pnpm to 9.4.0 (#64945) 2024-06-28 04:41:35 -07:00
development test: add test for parallel routes hmr (#67392) 2024-07-02 15:07:16 +00:00
e2e fix dynamic param extraction for interception routes (#67400) 2024-07-03 11:21:07 -07:00
examples Replace createNextDescribe with nextTestSetup (#64817) 2024-04-25 12:06:12 -06:00
integration fix(next/image): undo tight coupling between priority=true and fetchPriority=high (#67351) 2024-07-01 14:42:42 -04:00
lib Replace hasRedbox() (#67025) 2024-06-20 10:37:32 +02:00
production Ensure required-server-files test can exit cleanly (#66765) 2024-07-02 00:05:28 +02:00
unit fix(next/image): undo tight coupling between priority=true and fetchPriority=high (#67351) 2024-07-01 14:42:42 -04:00
.gitignore ci(workflow): enable test trace upload (#51107) 2023-06-12 17:14:13 +00:00
build-turbopack-build-tests-manifest.js Ensure production integration test results are uploaded (#63706) 2024-03-26 10:41:16 +01:00
build-turbopack-dev-tests-manifest.js Rename turbopack-tests-manifest to turbopack-dev-tests-manifest (#63409) 2024-03-19 10:26:14 +01:00
build-turbopack-tests-manifest.d.ts Update Turbopack test manifest from GitHub Actions artifact (#58394) 2023-11-24 16:48:12 +01:00
deploy-tests-manifest.json Fix noindex is missing on static not-found page (#67135) 2024-06-23 21:56:08 +02:00
get-test-filter.js fix e2e deployment test action (#66721) 2024-06-11 20:59:43 +00:00
jest-setup-after-env.ts Decrease default test timeouts (#56116) 2023-09-27 23:55:20 +00:00
ppr-tests-manifest.json Add timeout/retry handling for fetch cache (#66652) 2024-06-10 11:34:36 -07:00
readme.md
related-tests-manifest.json Reapply "chore(test): run related E2E deploy tests on PRs" (#64682) (#64712) 2024-04-19 11:02:43 +02:00
test-file.txt
turbopack-build-tests-manifest.json Ensure required-server-files test can exit cleanly (#66765) 2024-07-02 00:05:28 +02:00
turbopack-dev-examples-manifest.json Fix last examples for Turbopack (#64020) 2024-04-03 16:02:52 +02:00
turbopack-dev-tests-manifest.json Update Turbopack development test manifest (#67093) 2024-06-21 10:27:34 +02:00

See Testing for more information on how you can run/write/debug tests for Next.js.