Upgrade to Angular v21#38
Merged
Merged
Conversation
5b6799a to
b4b067c
Compare
There was a problem hiding this comment.
Pull request overview
This PR upgrades the StatusBoard UI to Angular v21 and aligns the frontend toolchain with the newer Angular ecosystem by modernizing dependency injection usage and the Cypress configuration.
Changes:
- Upgrade Angular + related UI/test dependencies to v21-compatible versions.
- Refactor Angular DI from constructor injection to
inject()in services/components and update templates to modern control flow syntax. - Migrate Cypress from
cypress.json+ plugins file tocypress.config.tsand adjust TypeScript/ESLint configs accordingly.
Reviewed changes
Copilot reviewed 21 out of 22 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| ui/tsconfig.spec.json | Adjusts TS compiler options for Jest specs (module isolation / JSON imports / synthetic defaults). |
| ui/tsconfig.json | Switches TS module resolution to bundler to match modern Angular tooling. |
| ui/tsconfig.cy.json | Includes cypress.config.ts in the Cypress TypeScript project. |
| ui/src/main.ts | Adds provideZoneChangeDetection() during NgModule bootstrap. |
| ui/src/app/services/refresh/refresh.service.ts | Converts service DI to inject(). |
| ui/src/app/services/card/card.service.ts | Converts service DI to inject(). |
| ui/src/app/services/backend/backend.service.ts | Converts service DI to inject() and removes constructor. |
| ui/src/app/components/status-list/status-list.component.ts | Converts component DI to inject() and updates constructor accordingly. |
| ui/src/app/components/status-list/status-list.component.html | Migrates *ngIf to the new @if syntax. |
| ui/src/app/components/dependency-graph/dependency-graph.component.ts | Converts dialog DI to inject(). |
| ui/src/app/components/card/card.component.ts | Converts component DI to inject() and removes constructor injection. |
| ui/src/app/components/card-details/card-details.component.ts | Converts dialog DI to inject(). |
| ui/src/app/app.component.ts | Converts component DI to inject() and removes constructor injection. |
| ui/package.json | Bumps Angular/PrimeNG/CPS UI Kit/testing deps to Angular v21-compatible versions. |
| ui/jest.config.ts | Updates Jest preset config (removes preset global setup) and keeps ESM transform settings. |
| ui/eslint.config.js | Includes cypress.config.ts in Cypress linting scope. |
| ui/cypress/plugins/index.js | Removes obsolete Cypress plugins file. |
| ui/cypress.json | Removes obsolete legacy Cypress JSON config. |
| ui/cypress.config.ts | Adds new Cypress v10+ style TypeScript config. |
| ui/angular.json | Adds Angular schematics defaults to standardize generated artifact naming. |
| .github/workflows/status-board-ui-tests.yml | Updates CI to use Node.js v24 and newer setup-node action. |
petr-pokorny-absa
approved these changes
Apr 7, 2026
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.
Upgraded Angular and dependencies to v21, refactored DI to use inject(), and modernized Cypress config.
Changes:
inject()across all components and servicescypress.json+ plugins file tocypress.config.ts, remove obsolete filestsconfig.jsonto bundler module resolutionprovideZoneChangeDetectionto main bootstrapRelease Notes:
Closes #36