feat: update to Angular v22 - #848
Merged
Merged
Conversation
fateeand
requested review from
TerranceKhumalo-absa,
korel-san and
lukasmatta
as code owners
August 20, 2026 16:27
Contributor
Coverage report for library
Test suite run success3233 tests passing in 76 suites. Report generated by 🧪jest coverage report action from cbd7120 |
Contributor
Playwright test resultsDetails
|
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
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.
This PR targets the
next-majorbranch, rather thanmaster, as it is part of the next major version update.Summary
Updates the project from Angular 21 to Angular 22, following the official update guide.
changeDetection: ChangeDetectionStrategy.Eagerto components where it was required, preserving pre-v22 change-detection defaultsnullishCoalescingNotNullable/optionalChainNotNullableextended template diagnosticsbaseUrlfromtsconfig.json(TS 6.0 deprecation) and converted the one absolute-style import it enabled (projects/cps-ui-kit/package.jsoninapp.component.ts/.spec.ts) to a relative importbrowser-syncand@types/expressdead devDependencieshighlight.js,@axe-core/playwright,eslint-config-prettierto their latest compatible versionsgenerate-api-datajob that checkedgit statusonprojects/composition/src/assets/api-data/, a path that doesn't exist - the generator actually writes toprojects/composition/src/app/api-data/. The job always trivially "passed" without ever detecting any issuesNgModelthat detects when an internalngModelbinding sits inside a component nested in an ancestor reactive form but can't register with it due to the component boundary (@Host()injection)test:coverage:cps-ui-kit/test:coverage:compositioncrashing withENOENTby explicitly settingcoverageDirectory: '<rootDir>/coverage'injest.config.js. Root cause:@angular-builders/jestv22 changed its default coverage output location from the workspace root to a per-project folder, socoverage/was never created for the--output-fileflag to write into.Closes #674
Release notes: