Skip to content

fix(rewrite): collapse leading slashes when doing a redirect#15997

Merged
ematipico merged 1 commit intomainfrom
refactor/unit-tests-part3
Mar 19, 2026
Merged

fix(rewrite): collapse leading slashes when doing a redirect#15997
ematipico merged 1 commit intomainfrom
refactor/unit-tests-part3

Conversation

@ematipico
Copy link
Copy Markdown
Member

Changes

This PR moves the tests for rewrites. From 54 integration tests, we now have only 20 tests. Many had to stay because:

  • they test some particular behaviour that belongs to the server (we have middleware that normalises slashes)
  • build file system
  • build errors

This PR also fixes an issue with rewrites where rewriting to a //about path, would result in an error. Now we normalise the paths.

This PR also refactors the createTestApp to be less verbose

Testing

Green CI

Docs

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 19, 2026

🦋 Changeset detected

Latest commit: fabecf8

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

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

@github-actions github-actions bot added the pkg: astro Related to the core `astro` package (scope) label Mar 19, 2026
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Mar 19, 2026

Merging this PR will not alter performance

✅ 18 untouched benchmarks


Comparing refactor/unit-tests-part3 (fabecf8) with main (3e7a9d5)

Open in CodSpeed

@ematipico ematipico merged commit 1fddff7 into main Mar 19, 2026
27 checks passed
@ematipico ematipico deleted the refactor/unit-tests-part3 branch March 19, 2026 19:26
@astrobot-houston astrobot-houston mentioned this pull request Mar 19, 2026
dadezzz pushed a commit to dadezzz/ice-notes that referenced this pull request Mar 24, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [astro](https://astro.build) ([source](https://github.com/withastro/astro/tree/HEAD/packages/astro)) | [`6.0.6` → `6.0.8`](https://renovatebot.com/diffs/npm/astro/6.0.6/6.0.8) | ![age](https://developer.mend.io/api/mc/badges/age/npm/astro/6.0.8?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/astro/6.0.6/6.0.8?slim=true) |

---

### Release Notes

<details>
<summary>withastro/astro (astro)</summary>

### [`v6.0.8`](https://github.com/withastro/astro/blob/HEAD/packages/astro/CHANGELOG.md#608)

[Compare Source](https://github.com/withastro/astro/compare/astro@6.0.7...astro@6.0.8)

##### Patch Changes

- [#&#8203;15978](withastro/astro#15978) [`6d182fe`](withastro/astro@6d182fe) Thanks [@&#8203;seroperson](https://github.com/seroperson)! - Fixes a bug where Astro Actions didn't properly support nested object properties, causing problems when users used zod functions such as `superRefine` or `discriminatedUnion`.

- [#&#8203;16011](withastro/astro#16011) [`e752170`](withastro/astro@e752170) Thanks [@&#8203;matthewp](https://github.com/matthewp)! - Fixes a dev server hang on the first request when using the Cloudflare adapter

- [#&#8203;15997](withastro/astro#15997) [`1fddff7`](withastro/astro@1fddff7) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixes `Astro.rewrite()` failing when the target path contains duplicate slashes (e.g. `//about`). The duplicate slashes are now collapsed before URL parsing, preventing them from being interpreted as a protocol-relative URL.

### [`v6.0.7`](https://github.com/withastro/astro/blob/HEAD/packages/astro/CHANGELOG.md#607)

[Compare Source](https://github.com/withastro/astro/compare/astro@6.0.6...astro@6.0.7)

##### Patch Changes

- [#&#8203;15950](withastro/astro#15950) [`acce5e8`](withastro/astro@acce5e8) Thanks [@&#8203;matthewp](https://github.com/matthewp)! - Fixes a build regression in projects with multiple frontend integrations where `server:defer` server islands could fail at runtime when all pages are prerendered.

- [#&#8203;15988](withastro/astro#15988) [`c93b4a0`](withastro/astro@c93b4a0) Thanks [@&#8203;ossaidqadri](https://github.com/ossaidqadri)! - Fix styles from dynamically imported components not being injected on first dev server load.

- [#&#8203;15968](withastro/astro#15968) [`3e7a9d5`](withastro/astro@3e7a9d5) Thanks [@&#8203;chasemccoy](https://github.com/chasemccoy)! - Fixes `renderMarkdown` in custom content loaders not resolving images in markdown content. Images referenced in markdown processed by `renderMarkdown` are now correctly optimized, matching the behavior of the built-in `glob()` loader.

- [#&#8203;15990](withastro/astro#15990) [`1e6017f`](withastro/astro@1e6017f) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixes an issue where `Astro.currentLocale` would always be the default locale instead of the actual one when using a dynamic route like `[locale].astro` or `[locale]/index.astro`. It now resolves to the correct locale from the URL.

- [#&#8203;15990](withastro/astro#15990) [`1e6017f`](withastro/astro@1e6017f) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixes an issue where visiting an invalid locale URL (e.g. `/asdf/`) would show the content of a dynamic `[locale]` page with a 404 status code, instead of showing your custom 404 page. Now, the correct 404 page is rendered when the locale in the URL doesn't match any configured locale.

- [#&#8203;15960](withastro/astro#15960) [`1d84020`](withastro/astro@1d84020) Thanks [@&#8203;matthewp](https://github.com/matthewp)! - Fixes Cloudflare dev server islands with `prerenderEnvironment: 'node'` by sharing the serialized manifest encryption key across dev environments and routing server island requests through the SSR runtime.

- [#&#8203;15735](withastro/astro#15735) [`9685e2d`](withastro/astro@9685e2d) Thanks [@&#8203;fa-sharp](https://github.com/fa-sharp)! - Fixes an EventEmitter memory leak when serving static pages from Node.js middleware.

  When using the middleware handler, requests that were being passed on to Express / Fastify (e.g. static files / pre-rendered pages / etc.) weren't cleaning up socket listeners before calling `next()`, causing a memory leak warning. This fix makes sure to run the cleanup before calling `next()`.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My43Ni4yIiwidXBkYXRlZEluVmVyIjoiNDMuODYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: Renovate Bot <renovate@zarantonello.dev>
Co-committed-by: Renovate Bot <renovate@zarantonello.dev>
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.

2 participants