Skip to content

fix(@angular/build): enhance Vitest config merging and validation#31729

Merged
clydin merged 1 commit intoangular:mainfrom
clydin:unit-test/vitest-config-merging
Nov 9, 2025
Merged

fix(@angular/build): enhance Vitest config merging and validation#31729
clydin merged 1 commit intoangular:mainfrom
clydin:unit-test/vitest-config-merging

Conversation

@clydin
Copy link
Member

@clydin clydin commented Nov 9, 2025

This change improves how user-defined Vitest configurations work with the Angular CLI's unit test builder.

The builder now checks for and handles specific options in vitest-base.config.ts. It detects the test.projects option, logs a warning, and removes it to prevent conflicts. The test.include option is handled in a similar way, ensuring the builder's test discovery is used. Any test.setupFiles from vitest-base.config.ts are now added to the CLI's setup files, supporting both single string and array formats. User-defined Vite plugins from vitest-base.config.ts are also combined with the builder's plugins, with a filter to prevent duplicating internal CLI plugins.

These updates give users more flexibility to customize their Vitest setup while keeping the Angular CLI's test builder predictable.

This change improves how user-defined Vitest configurations work with the Angular CLI's unit test builder.

The builder now checks for and handles specific options in `vitest-base.config.ts`. It detects the `test.projects` option, logs a warning, and removes it to prevent conflicts. The `test.include` option is handled in a similar way, ensuring the builder's test discovery is used. Any `test.setupFiles` from `vitest-base.config.ts` are now added to the CLI's setup files, supporting both single string and array formats. User-defined Vite plugins from `vitest-base.config.ts` are also combined with the builder's plugins, with a filter to prevent duplicating internal CLI plugins.

These updates give users more flexibility to customize their Vitest setup while keeping the Angular CLI's test builder predictable.
@clydin clydin added the target: rc This PR is targeted for the next release-candidate label Nov 9, 2025
@clydin clydin added the action: review The PR is still awaiting reviews from at least one requested reviewer label Nov 9, 2025
@clydin clydin requested a review from alan-agius4 November 9, 2025 05:49
@alan-agius4 alan-agius4 added action: merge The PR is ready for merge by the caretaker and removed action: review The PR is still awaiting reviews from at least one requested reviewer labels Nov 9, 2025
@clydin clydin merged commit 0aab115 into angular:main Nov 9, 2025
35 checks passed
@clydin
Copy link
Member Author

clydin commented Nov 9, 2025

This PR was merged into the repository. The changes were merged into the following branches:

@clydin clydin deleted the unit-test/vitest-config-merging branch November 9, 2025 08:15
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Dec 10, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

action: merge The PR is ready for merge by the caretaker area: @angular/build target: rc This PR is targeted for the next release-candidate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants