Skip to content

Addon-vitest: Support paths with spaces #31437

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 9, 2025
Merged

Conversation

ndelangen
Copy link
Member

@ndelangen ndelangen commented May 9, 2025

Closes #29572

What I did

This pull request introduces a utility function to handle file URL conversions and integrates it across multiple test cases to improve code clarity and maintainability. Below are the most important changes grouped by theme:

New Utility Function:

  • Added convertToFilePath to code/addons/vitest/src/vitest-plugin/test-utils.ts. This function converts file URLs to file paths, handling URL encoding and Windows-specific path normalization.

Refactoring Test Cases:

Code Cleanup:

  • Removed an unused PluginOption type import from code/addons/vitest/src/vitest-plugin/index.ts to streamline the code.

Checklist for Contributors

Testing

The changes in this PR are covered in the following automated tests:

  • stories
  • unit tests
  • integration tests
  • end-to-end tests

Manual testing

This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!

Documentation

  • Add or update documentation reflecting your changes
  • If you are deprecating/removing a feature, make sure to update
    MIGRATION.MD

Checklist for Maintainers

  • When this PR is ready for testing, make sure to add ci:normal, ci:merged or ci:daily GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found in code/lib/cli-storybook/src/sandbox-templates.ts

  • Make sure this PR contains one of the labels below:

    Available labels
    • bug: Internal changes that fixes incorrect behavior.
    • maintenance: User-facing maintenance tasks.
    • dependencies: Upgrading (sometimes downgrading) dependencies.
    • build: Internal-facing build tooling & test updates. Will not show up in release changelog.
    • cleanup: Minor cleanup style change. Will not show up in release changelog.
    • documentation: Documentation only changes. Will not show up in release changelog.
    • feature request: Introducing a new feature.
    • BREAKING CHANGE: Changes that break compatibility in some way with current major version.
    • other: Changes that don't fit in the above categories.

🦋 Canary release

This PR does not have a canary release associated. You can request a canary release of this pull request by mentioning the @storybookjs/core team here.

core team members can create a canary release here or locally with gh workflow run --repo storybookjs/storybook canary-release-pr.yml --field pr=<PR_NUMBER>

Greptile Summary

Added a new convertToFilePath utility function to handle paths with spaces in the Vitest addon, fixing test failures when project paths contain spaces.

  • Added convertToFilePath in code/addons/vitest/src/vitest-plugin/test-utils.ts to properly decode URL-encoded paths
  • Updated path handling in code/core/src/csf-tools/vitest-plugin/transformer.ts to use convertToFilePath for file path checks
  • Modified test snapshots in transformer.test.ts to validate new path conversion functionality
  • Fixed Windows path handling by properly normalizing file:// protocol paths

…former logic. This change introduces a new function to convert file URLs to paths, improving compatibility in the transformer by replacing direct URL checks with this utility.
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR fixes an issue where paths with spaces were not handled correctly in Vitest integration by introducing a new helper function to convert file URLs into proper file paths. Key changes include:

  • Replacing direct usage of import.meta.url.includes(...) with convertToFilePath(import.meta.url).includes(...).
  • Adding convertToFilePath to transform URL encoding (e.g. spaces) in file paths.
  • Updating test files to validate the new path conversion logic.

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
code/core/src/csf-tools/vitest-plugin/transformer.ts Updated logic to use convertToFilePath for checking file path includes, ensuring paths with spaces are correctly handled
code/core/src/csf-tools/vitest-plugin/transformer.test.ts Updated inline snapshots and assertions to reflect usage of convertToFilePath
code/addons/vitest/src/vitest-plugin/test-utils.ts Added the convertToFilePath utility function to perform URL decoding for file paths
code/addons/vitest/src/vitest-plugin/index.ts Removed an unused import, aligning with updated transformation logic

Copy link

nx-cloud bot commented May 9, 2025

View your CI Pipeline Execution ↗ for commit ecf03b2.

Command Status Duration Result
nx run-many -t check -c production --parallel=7 ✅ Succeeded 1m 9s View ↗
nx run-many -t build -c production --parallel=3 ✅ Succeeded 4m 59s View ↗

☁️ Nx Cloud last updated this comment at 2025-05-09 12:41:24 UTC

@ndelangen ndelangen marked this pull request as ready for review May 9, 2025 12:47
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

4 file(s) reviewed, 2 comment(s)
Edit PR Review Bot Settings | Greptile

@yannbf yannbf changed the title Addon-vitest: Fix path with spaces Addon-vitest: Support paths with spaces May 9, 2025
@yannbf yannbf merged commit f3e02ad into next May 9, 2025
68 of 69 checks passed
@yannbf yannbf deleted the norbert/vitest-space-bug branch May 9, 2025 14:57
@github-actions github-actions bot mentioned this pull request May 11, 2025
29 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: Vitest/Test Addon doesn't work if space in path
3 participants