Skip to content

Conversation

@gugu
Copy link
Contributor

@gugu gugu commented Jan 13, 2026

No description provided.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request upgrades the Angular frontend application from version 19 to version 20, along with related framework dependencies and configuration updates. The changes include package updates, Sentry SDK migration, Material Design CSS variable updates, and test modernization.

Changes:

  • Upgraded Angular packages from ~19.x to ~20.x
  • Migrated from @sentry/angular-ivy to @sentry/angular (v10.33.0)
  • Updated Material Design CSS variables from --mdc-* to --mat-* prefix
  • Modernized TypeScript configuration and test utilities
  • Updated browser support targets

Reviewed changes

Copilot reviewed 35 out of 37 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
frontend/package.json Angular and related dependencies upgraded to v20, Sentry package updated
frontend/tsconfig.json Module resolution changed to "bundler", formatting standardized
frontend/src/main.ts Sentry API updated to use browserTracingIntegration()
frontend/src/types/globals.d.ts New file declaring Window interface extensions
frontend/src/custom-theme.scss Material CSS variables updated to --mat-* prefix
frontend/src/app/services/*.ts Sentry import paths updated from angular-ivy to angular
frontend/src/app/models/company.ts Import paths updated for Sentry
frontend/src/app/components/**/*.ts Import paths and formatting updates
frontend/src/app/components/**/*.spec.ts TestBed.get() replaced with TestBed.inject()
frontend/src/app/components/**/*.css Material CSS variables updated throughout
frontend/src/app/app.component.ts Sentry imports and Window interface usage updated
frontend/browserslist Simplified to modern browser targeting
frontend/CLAUDE.md Documentation updated to reflect Sentry package change

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

}
// app initialization if user is logged in (session restoration)
else if (expirationToken) {
const expirationTime = expirationToken ? new Date(expirationToken) : null;
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This use of variable 'expirationToken' always evaluates to true.

Suggested change
const expirationTime = expirationToken ? new Date(expirationToken) : null;
const expirationTime = new Date(expirationToken);

Copilot uses AI. Check for mistakes.
gugu and others added 14 commits January 13, 2026 16:36
- Add optional chaining (?.) to all err.error.message and
  err.error.originalMessage accesses to prevent TypeError when
  err.error is undefined
- Fix timer tests in app.component.spec.ts by mocking setTimeout
  directly instead of using fakeAsync (Zone.js compatibility issue)
- Refactor secrets.component.spec.ts debounce tests to not rely
  on RxJS timer control

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Angulartics2Module.forRoot() to ForeignKeyFilterComponent tests
- Fix router mock in DbConnectionDeleteDialogComponent tests (add events Subject)
- Replace vi.spyOn(dialog, 'open') with provider-level MatDialog mocks
- Create mocks before TestBed.configureTestingModule for proper injection

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use overrideComponent to set component-level MatDialog providers
  (fixes standalone component mock injection issues)
- Fix ForeignKeyFilterComponent tests: mock connectionID getter,
  set truthy value for test data, update "No matches" message
- Fix UserSettingsComponent test: add missing company property
- Fix ConnectDBComponent test: update dialog width and add provider field
- Fix UserService confirm2FA test: wrap await in try/catch
- Fix DbTableActionsComponent: add fetchRules mock before detectChanges
- Add notifications mock methods (showAlert, showErrorSnackbar)
- Fix connections.service test: use try/catch for error handling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix connect-db.component.spec.ts: wrap response in { connection: ... }
  to match expected updateConnection response structure
- Fix connections.service.spec.ts: add missing mock methods
  - Add checkMasterPassword to fakeMasterPassword mock
  - Add dismissAlert to fakeNotifications mock
- Convert updateConnection error test from async/await to subscribe
  pattern to properly handle Observable errors

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Previously these test files only had a single "should create" test.
Added tests for:

- db-table-ai-panel: thread creation, messaging, keyboard events, error handling
- widget: initialization, ngOnChanges, output emitters, docs URLs
- sso: SAML config fetching, create/update operations, router navigation
- filter json-editor: code model initialization, editor options, value handling
- record-edit code: language from widget params, theme from UiSettingsService
- record-edit json-editor: JSON stringification, null/undefined handling
- record-edit markdown: markdown language setup, theme configuration

Test count increased from 825 to 883 (+58 tests)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove Karma-specific flags (--browsers, --no-watch, --no-progress)
that are not compatible with the Vitest test runner.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add step to install Playwright browsers before running tests.
Also add setup-node with Node.js 24.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants