-
Notifications
You must be signed in to change notification settings - Fork 3.4k
feat: add cypress/angular-zoneless testing harness for Angular 21 (also supports Angular 20)
#33025
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
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5700a7b to
b3a6a49
Compare
cypress
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| Project |
cypress
|
| Branch Review |
feat/add_zoneless_angular_harness
|
| Run status |
|
| Run duration | 20m 38s |
| Commit |
|
| Committer | Bill Glesias |
| View all properties for this run ↗︎ | |
| Test results | |
|---|---|
|
|
1
|
|
|
2
|
|
|
27
|
|
|
0
|
|
|
797
|
| View all changes introduced in this branch ↗︎ | |
UI Coverage
62.34%
|
|
|---|---|
|
|
27
|
|
|
48
|
Accessibility
98.98%
|
|
|---|---|
|
|
0 critical
3 serious
1 moderate
0 minor
|
|
|
19
|
Tests for review
cypress\e2e\runner\retries.experimentalRetries.mochaEvents.cy.ts • 1 failed test • app-e2e
| Test | Artifacts | |
|---|---|---|
| ... > does not try to serialize error with err.actual as DOM node |
Test Replay
Screenshots
|
|
cypress\e2e\cypress-origin-communicator.cy.ts • 1 flaky test • app-e2e
cypress\e2e\runs.cy.ts • 1 flaky test • app-e2e
| Test | Artifacts | |
|---|---|---|
| ... > displays each run with correct information |
Test Replay
Screenshots
|
|
a1b2377 to
15f446b
Compare
AtofStryker
commented
Nov 26, 2025
AtofStryker
commented
Nov 26, 2025
| const cypressSchematicPackagePath = path.join(__dirname, '..') | ||
|
|
||
| const ANGULAR_PROJECTS: ProjectFixtureDir[] = ['angular-20', 'angular-21'] | ||
| const ANGULAR_PROJECTS: ProjectFixtureDir[] = ['angular-19', 'angular-20'] |
Contributor
Author
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we have to downgrade the test because the zoneless handler isn't supported within the binary yet (see the PR description)
AtofStryker
commented
Nov 26, 2025
10e9b77 to
70ce43b
Compare
47d9a59 to
1e24ba1
Compare
AtofStryker
commented
Dec 2, 2025
5d5b79a to
cc8305a
Compare
1e24ba1 to
d64f6cf
Compare
3 tasks
d64f6cf to
2749db0
Compare
…r angular 21 zoneless
2749db0 to
1973227
Compare
system-tests/projects/angular-21/src/app/components/standalone.component.ts
Outdated
Show resolved
Hide resolved
87fbe7a to
9033b2e
Compare
9033b2e to
2d84ab6
Compare
jennifer-shehane
approved these changes
Dec 4, 2025
system-tests/projects/angular-21/src/app/components/legacy/button-output.component.ts
Show resolved
Hide resolved
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Additional details
Adds a zoneless component testing harness for Angular 20 (experimental) and Angular 21. Angular 21 ships with zoneless and Cypress will scaffold
cypress/angular-zonelessfor Angular 21+ projects.Because this is likely going to be the
nexttarget forcypress/angularand the recommended pattern for data-binding is now signals, this testing harness will be removeautoDetectChangesas this happens naturally andautoSpyOutputsas@Outputdecorators are legacy and can be created manually viacreateSpyOutputs.NOTE: when we merge the changes upstream in #33007 we need to call this out as BREAKING CHANGES
Additionally, with the addition of the
zonelessmount handler, theangular-21system test project needs it's own set of fixtures, which will eventually be moved into the main fixture directory (as a replacement) once Angular 18 and 19 support are officially dropped from Cypress.After this releases, we need to update
@cypress/schematicto support Angular 21 as the scaffolded files via the schematic CLI are not correct. I have a WIP of this on #33027 and it must be done AFTER this feature is releasedSteps to test
How has the user experience changed?
PR Tasks
cypress-documentation? chore: add angular 21 and zoneless documentation cypress-documentation#6326type definitions?Note
Adds
cypress/angular-zonelessfor Angular 20/21 and integrates it across CLI, scaffolding, CI, and system tests (including new Angular 21 project).@cypress/angular-zonelesspackage providing zone.js-free Angular component mounting (mount,createOutputSpy, zoneless TestBed setup).angular-zonelessin CLI build, exports, files, post-build copy, eslint ignores, and devDependencies.cypress/angular-zonelessfor projects with Angular>=21(fallback tocypress/angularotherwise).cypress/angularandcypress/angular-zoneless.npm-angular-zonelessbuild job; include in PR and main workflows andready-to-releasedeps.cypress/angular-zoneless(configs, support, components, specs, assets).Written by Cursor Bugbot for commit 2d84ab6. This will update automatically on new commits. Configure here.