Repository navigation
Angular 21: standalone components, Vitest and angular19 CI - #1524
Merged
Merged
Conversation
PR CI checks out the frontend (and sibling plugins) at the branch the PR targets instead of always stable. Corepack is enabled before every yarn install, since the frontend's angular19 branch pins yarn@4; the Docker build uses yarn for the frontend build as well. Dead WDIO config copies are dropped (the frontend no longer has WDIO). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ngular 21 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🔵 Needs a closer look
The broad standalone-component and test-runner migration still needs browser validation and final human review.
No open issues 🎉
What changed in this PR
Updates the Insight Dashboard plugin for the frontend’s Angular 21 migration, covering standalone components, Vitest, and CI integration.
Changes:
- Moves template dependencies into standalone components and simplifies the feature module.
- Migrates specs to Vitest with shared providers and download capture.
- Adds unit-test CI jobs, enables Corepack, and updates selectors for indexed IDs.
| File | Description |
|---|---|
| eform-client/src/app/plugins/modules/insight-dashboard-pn/testing/common-providers.ts | Adds shared test providers. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/testing/capture-downloads.ts | Captures downloads for assertions. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/layouts/insight-dashboard-pn-layout.component.ts | Imports standalone router outlet. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/insight-dashboard-pn.module.ts | Replaces declarations with standalone imports. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/helpers/tsv-export.helper.spec.ts | Imports Vitest APIs. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/surveys/survey-configurations-page/survey-configurations-page.component.ts | Adds standalone template dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/surveys/survey-configurations-page/survey-configurations-page.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/surveys/survey-configurations-page/survey-configurations-page.component.html | Indexes action-menu IDs. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/surveys/survey-configuration-new/survey-configuration-new.component.ts | Adds standalone dialog dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/surveys/survey-configuration-new/survey-configuration-new.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/surveys/survey-configuration-edit/survey-configuration-edit.component.ts | Adds standalone dialog dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/surveys/survey-configuration-edit/survey-configuration-edit.component.spec.ts | Migrates setup and supplies dialog data. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/surveys/survey-configuration-delete/survey-configuration-delete.component.ts | Adds standalone dialog dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/surveys/survey-configuration-delete/survey-configuration-delete.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/surveys/survey-configuration-activate/survey-configuration-status.component.ts | Adds standalone dialog dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/surveys/survey-configuration-activate/survey-configuration-status.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/insight-dashboard-settings/insight-dashboard-settings.component.ts | Adds standalone settings dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-view/dashboard-view.component.ts | Imports standalone view dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-view/dashboard-view.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-view/dashboard-view.component.html | Indexes dashboard-view item IDs. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-raw-data-view/dashboard-raw-data-view.component.ts | Adds standalone table dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-raw-data-view/dashboard-raw-data-view.component.spec.ts | Migrates mocks and download assertions. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-interviews-view/dashboard-interviews-view.component.ts | Adds standalone table dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-interviews-view/dashboard-interviews-view.component.spec.ts | Migrates mocks and download assertions. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-chart-view/dashboard-chart-view.component.ts | Imports chart and template dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-chart-view/dashboard-chart-view.component.spec.ts | Migrates standalone chart test setup. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-chart-data-view/dashboard-chart-data-view.component.ts | Adds standalone template dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-chart-data-view/dashboard-chart-data-view.component.spec.ts | Migrates setup and download assertions. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-block-view/dashboard-block-view.component.ts | Imports standalone child views. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/view/dashboard-block-view/dashboard-block-view.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-item-edit/dashboard-item-edit.component.ts | Imports standalone editor dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-item-edit/dashboard-item-edit.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-interviews-edit/dashboard-interviews-edit.component.ts | Imports standalone grid. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-interviews-edit/dashboard-interviews-edit.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-edit/dashboard-edit.component.ts | Imports editor and drag-and-drop dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-edit/dashboard-edit.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-edit/dashboard-edit.component.html | Indexes dashboard-item IDs. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-edit-header/dashboard-edit-header.component.ts | Imports form and date-picker dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-edit-header/dashboard-edit-header.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-delete/dashboard-delete.component.ts | Adds standalone dialog dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-delete/dashboard-delete.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-copy/dashboard-copy.component.ts | Adds standalone dialog dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-copy/dashboard-copy.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-chart-edit/dashboard-chart-edit.component.ts | Imports chart and template dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-chart-edit/dashboard-chart-edit.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-chart-data-edit/dashboard-chart-data-edit.component.ts | Converts to standalone. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/edit/dashboard-chart-data-edit/dashboard-chart-data-edit.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/dashboards-page/dashboards-page.component.ts | Adds standalone page dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/dashboards-page/dashboards-page.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/dashboards-page/dashboards-page.component.html | Indexes action-menu IDs. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/dashboard-new/dashboard-new.component.ts | Adds standalone dialog dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/dashboards/dashboard-new/dashboard-new.component.spec.ts | Migrates setup to Vitest. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/answers/answer-values-table/answer-values-table.component.ts | Imports standalone grid. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/answers/answer-page/answer-page.component.ts | Adds standalone page dependencies. |
| eform-client/src/app/plugins/modules/insight-dashboard-pn/components/answers/answer-delete-modal/answer-delete-modal.component.ts | Adds standalone dialog dependencies. |
| eform-client/playwright/e2e/plugins/insight-dashboard-pn/InsightDashboard-SurveysConfigs.page.ts | Updates action-menu selectors. |
| eform-client/playwright/e2e/plugins/insight-dashboard-pn/InsightDashboard-DashboardView.page.ts | Counts indexed view items. |
| eform-client/playwright/e2e/plugins/insight-dashboard-pn/InsightDashboard-Dashboards.page.ts | Updates action-menu selector. |
| eform-client/playwright/e2e/plugins/insight-dashboard-pn/InsightDashboard-DashboardEdit.page.ts | Counts indexed editor items. |
| eform-client/e2e/Page objects/InsightDashboard/InsightDashboard-SurveysConfigs.page.ts | Updates WDIO action-menu selectors. |
| eform-client/e2e/Page objects/InsightDashboard/InsightDashboard-DashboardView.page.ts | Updates WDIO view-item selector. |
| eform-client/e2e/Page objects/InsightDashboard/InsightDashboard-Dashboards.page.ts | Updates WDIO action-menu selector. |
| eform-client/e2e/Page objects/InsightDashboard/InsightDashboard-DashboardEdit.page.ts | Updates WDIO editor-item selector. |
| Dockerfile | Enables Corepack before installation. |
| .github/workflows/dotnet-core-pr.yml | Aligns frontend checkout and adds unit tests. |
| .github/workflows/dotnet-core-master.yml | Adds unit tests and enables Corepack. |
Review effort: Balanced
… editing the next item The add/copy buttons sit in the item's expansion panel header, so clicking them also toggles that panel. ng-select 21 keeps a body-appended dropdown glued to its select on scroll, so a dropdown opened on the next item while the panel animates follows the select out of view and can't be clicked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Part of the Angular 21 upgrade. The frontend's
angular19branch is now on Angular 21 with standalone components and Vitest (microting/eform-angular-frontend#8155).yarn install, because the frontend'sangular19pins Yarn 4. A newangular-unit-testjob runs the plugin's specs withng test.declarationsare removed.MatDialogModulestays in the feature modules. ngx-charts components come in throughNgxChartsModule.actionMenu,dashboardItemanddashboardViewItemare now indexed, with the Playwright and WDIO selectors updated to match.testing/capture-downloads.tshelper, becausevi.mockof module exports doesn't work under Angular's test builder.Verified locally with
ng buildandng testagainst frontendangular19, together with the other migrated plugins. Code reviewed. Not yet clicked through in a browser.🤖 Generated with Claude Code