Skip to content

Conversation

@ematipico
Copy link
Member

@ematipico ematipico commented Nov 18, 2025

Changes

This PR fixes how component instances and routes are retrieved during the build.

Before, fallbacks and redirects were ignored, now they are correctly retrieved. When a route is a redirect or a fallback, we retrieve its "destination" route, so we can correctly process getStaticPaths.

To fix this, I implemented the generic method getModuleForRoute for the AppPipeline.

There are also some changes around the BuildPipeline, however they don't play a role anymore because we AppPipeline during prerendering.

Testing

All tests in redirects.test.js now pass.

Now

ℹ tests 612
ℹ suites 237
ℹ pass 542
ℹ fail 46
ℹ cancelled 18
ℹ skipped 6
ℹ todo 0
ℹ duration_ms 413163.497958

Before

ℹ tests 612
ℹ suites 237
ℹ pass 503
ℹ fail 41
ℹ cancelled 62
ℹ skipped 6
ℹ todo 0
ℹ duration_ms 657037.686459

More tests are now passing in i18n-routing.test.js, but others still fail due to getStaticPaths.

Docs

@changeset-bot
Copy link

changeset-bot bot commented Nov 18, 2025

⚠️ No Changeset found

Latest commit: 2f6d6c9

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions github-actions bot added the pkg: astro Related to the core `astro` package (scope) label Nov 18, 2025
// Load page module only when we need it for getStaticPaths
const pageModuleFn = pageMap.get(componentPath);
if (!pageModuleFn) {
const pageModule = await app.pipeline.getComponentByRoute(route);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah very cool, I assume this is what prevents us from needing to pass through the pageMap now, right?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes exactly! The method reads the pageMap, which is injected into the manifest

@matthewp
Copy link
Contributor

Looks like linting is failing. Would like to see that pass before approving.

@ematipico ematipico force-pushed the env-api/some-i18n-tests branch from 8a2aa57 to 2f6d6c9 Compare November 18, 2025 14:40
@ematipico ematipico requested a review from matthewp November 18, 2025 15:11
@ematipico ematipico merged commit 4ccf8e9 into feat/environment-api Nov 18, 2025
9 of 21 checks passed
@ematipico ematipico deleted the env-api/some-i18n-tests branch November 18, 2025 15:30
ematipico added a commit that referenced this pull request Dec 4, 2025
Co-authored-by: Emanuele Stoppa <[email protected]>
Co-authored-by: Samuel Macleod <[email protected]>
Co-authored-by: Alexander Niebuhr <[email protected]>
Co-authored-by: ascorbic <[email protected]>
Co-authored-by: matthewp <[email protected]>
Co-authored-by: Florian Lefebvre <[email protected]>
Co-authored-by: Matt Kane <[email protected]>
Co-authored-by: florian-lefebvre <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Matthew Phillips <[email protected]>
Co-authored-by:  Matthew Phillips <[email protected]>
Co-authored-by: Sarah Rainsberger <[email protected]>
Co-authored-by: Erika <[email protected]>
Co-authored-by: Hayato Hasegawa <[email protected]>
fix: creation of routes list in build (#14325)
Fix unit tests for environment API (#14394)
fixture (#14599)
fix: organize imports and formatting in cloudflare handler (#14697)
fix: resolve environment-api build issues for client & CSS (#14770)
Fixes CSS when both static/client styles exist (#14790)
fix: flag `serverLike` incorrectly computed (#14792)
fix: redirects and i18n routing (#14797)
fix: logger level and static paths params (#14799)
Fix image tests crashing (#14803)
fix(environment): Error overlay not working (#14816)
fix: hashing of chunks (#14811)
Fix before-hydration script emission for environment-api (#14818)
fix: node leak into content collections (#14820)
fix: avoid `node:path` (#14827)
Fix API route tests (#14825)
Fix unit tests (#14832)
fix: server islands build (#14830)
Fix astro-component-bundling tests (#14840)
Fix astro-component-bundling tests (#14837)
Fix config alias by using resolve.alias config (#14828)
fix: container and routing tests (#14852)
fix: respect user vite config on sourcemaps (#14847)
fix: remove useless tests (#14854)
Fixes assetQueryParams and public folder tests (#14853)
fix: renderError fallback (#14855)
Fix server-islands data being used across tests (#14857)
fix: incorrect configuration in tests (#14858)
Fixes for tests in environment branch (#14865)
Fixes for e2e tests in environment branch (#14870)
fix(test): svelte async rendering (#14886)
fix(cloudflare/vercel/netlify): some tests pass and excluded others (#14892)
Fixes for node integrations tests (#14900)
Fix @astrojs/db tests (#14899)
fix(environment): Prevent Vite from interpreting injected sourcemap comments as actual sourcemaps (#14921)
Fix remaining cloudflare tests (#14912)
fix(vite): import mergeConfig from direct file to avoid dynamic import being processed by Vite (#14939)
Fix astro:env tests in Cloudflare (#14925)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pkg: astro Related to the core `astro` package (scope)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants