From cbb3991d6da8cce3612f1e9145e4b8c9bf63a168 Mon Sep 17 00:00:00 2001 From: Tommy Heyding Date: Sat, 25 Jul 2026 18:33:52 +0200 Subject: [PATCH 1/2] chore: resolve technical debt after v2.0.0 migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit spec files (10): - Replace TranslateModule.forRoot() with provideTranslateService() in all *.spec.ts files — TranslateModule was removed in ngx-translate v18, causing all unit tests to fail at compile time package.json: - Remove autoprefixer (not referenced in postcss.config.json) - Remove @tailwindcss/aspect-ratio (built into Tailwind v4, already documented as removed in CHANGELOG but still listed in devDependencies) interceptors/retry.interceptor.ts: - Remove debug console.log from production retry logic features-demo.component.ts: - Remove debug console.log from onSelectionChange handler --- package.json | 2 -- src/app/app.component.spec.ts | 8 ++++---- src/app/core/footer/footer.component.spec.ts | 5 +++-- src/app/core/header/header.component.spec.ts | 8 ++++---- src/app/core/interceptors/retry.interceptor.ts | 1 - .../feature-overview.component.spec.ts | 5 +++-- .../language-switch/language-switch.component.spec.ts | 5 +++-- .../page-not-found/page-not-found.component.spec.ts | 5 +++-- .../features/home/pages/about/about.component.spec.ts | 5 +++-- .../home/pages/api-demo/api-demo.component.spec.ts | 8 ++++---- .../pages/features-demo/features-demo.component.ts | 4 ++-- .../features/home/pages/home/home.component.spec.ts | 10 +++++----- .../features/home/pages/login/login.component.spec.ts | 10 +++++----- 13 files changed, 39 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 76da0af..662361f 100644 --- a/package.json +++ b/package.json @@ -88,11 +88,9 @@ "@angular/compiler-cli": "^22.0.1", "@types/jasmine": "^5.1.4", "@types/node": "^22.10.2", - "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.11", "@tailwindcss/postcss": "^4.3.3", "@tailwindcss/typography": "^0.5.20", - "autoprefixer": "^10.4.23", "husky": "^9.1.7", "http-server": "^14.1.1", "jasmine-core": "^5.5.0", diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts index f336955..9b6535b 100644 --- a/src/app/app.component.spec.ts +++ b/src/app/app.component.spec.ts @@ -1,13 +1,13 @@ import { TestBed } from '@angular/core/testing'; -import { AppComponent } from './app.component'; import { provideRouter } from '@angular/router'; -import { TranslateModule } from '@ngx-translate/core'; +import { provideTranslateService } from '@ngx-translate/core'; +import { AppComponent } from './app.component'; describe('AppComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [AppComponent, TranslateModule.forRoot()], - providers: [provideRouter([])], + imports: [AppComponent], + providers: [provideRouter([]), provideTranslateService()], }).compileComponents(); }); diff --git a/src/app/core/footer/footer.component.spec.ts b/src/app/core/footer/footer.component.spec.ts index 2cafd18..51f0b75 100644 --- a/src/app/core/footer/footer.component.spec.ts +++ b/src/app/core/footer/footer.component.spec.ts @@ -1,6 +1,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { provideTranslateService } from '@ngx-translate/core'; import { FooterComponent } from './footer.component'; -import { TranslateModule } from '@ngx-translate/core'; describe('FooterComponent', () => { let component: FooterComponent; @@ -8,7 +8,8 @@ describe('FooterComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [FooterComponent, TranslateModule.forRoot()], + imports: [FooterComponent], + providers: [provideTranslateService()], }).compileComponents(); fixture = TestBed.createComponent(FooterComponent); diff --git a/src/app/core/header/header.component.spec.ts b/src/app/core/header/header.component.spec.ts index 125addc..32e6fc5 100644 --- a/src/app/core/header/header.component.spec.ts +++ b/src/app/core/header/header.component.spec.ts @@ -1,7 +1,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { HeaderComponent } from './header.component'; -import { TranslateModule } from '@ngx-translate/core'; import { provideRouter } from '@angular/router'; +import { provideTranslateService } from '@ngx-translate/core'; +import { HeaderComponent } from './header.component'; describe('HeaderComponent', () => { let component: HeaderComponent; @@ -9,8 +9,8 @@ describe('HeaderComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [HeaderComponent, TranslateModule.forRoot()], - providers: [provideRouter([])], + imports: [HeaderComponent], + providers: [provideRouter([]), provideTranslateService()], }).compileComponents(); fixture = TestBed.createComponent(HeaderComponent); diff --git a/src/app/core/interceptors/retry.interceptor.ts b/src/app/core/interceptors/retry.interceptor.ts index de02c53..b195bbd 100644 --- a/src/app/core/interceptors/retry.interceptor.ts +++ b/src/app/core/interceptors/retry.interceptor.ts @@ -18,7 +18,6 @@ export const retryInterceptor: HttpInterceptorFn = (req, next) => { // Exponential backoff: 1s, 2s, 4s const delayMs = Math.pow(2, retryCount - 1) * 1000; - console.log(`Retry attempt ${retryCount} after ${delayMs}ms`); return timer(delayMs); }, }) diff --git a/src/app/features/home/components/feature-overview/feature-overview.component.spec.ts b/src/app/features/home/components/feature-overview/feature-overview.component.spec.ts index 127695b..db10b70 100644 --- a/src/app/features/home/components/feature-overview/feature-overview.component.spec.ts +++ b/src/app/features/home/components/feature-overview/feature-overview.component.spec.ts @@ -1,6 +1,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { provideTranslateService } from '@ngx-translate/core'; import { FeatureOverviewComponent } from './feature-overview.component'; -import { TranslateModule } from '@ngx-translate/core'; describe('FeatureOverviewComponent', () => { let component: FeatureOverviewComponent; @@ -8,7 +8,8 @@ describe('FeatureOverviewComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [FeatureOverviewComponent, TranslateModule.forRoot()], + imports: [FeatureOverviewComponent], + providers: [provideTranslateService()], }).compileComponents(); fixture = TestBed.createComponent(FeatureOverviewComponent); diff --git a/src/app/features/home/components/language-switch/language-switch.component.spec.ts b/src/app/features/home/components/language-switch/language-switch.component.spec.ts index 6307c1d..3846a7d 100644 --- a/src/app/features/home/components/language-switch/language-switch.component.spec.ts +++ b/src/app/features/home/components/language-switch/language-switch.component.spec.ts @@ -1,6 +1,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { provideTranslateService } from '@ngx-translate/core'; import { LanguageSwitchComponent } from './language-switch.component'; -import { TranslateModule } from '@ngx-translate/core'; describe('LanguageSwitchComponent', () => { let component: LanguageSwitchComponent; @@ -8,7 +8,8 @@ describe('LanguageSwitchComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [LanguageSwitchComponent, TranslateModule.forRoot()], + imports: [LanguageSwitchComponent], + providers: [provideTranslateService()], }).compileComponents(); fixture = TestBed.createComponent(LanguageSwitchComponent); diff --git a/src/app/features/home/components/page-not-found/page-not-found.component.spec.ts b/src/app/features/home/components/page-not-found/page-not-found.component.spec.ts index 1a8156b..5966848 100644 --- a/src/app/features/home/components/page-not-found/page-not-found.component.spec.ts +++ b/src/app/features/home/components/page-not-found/page-not-found.component.spec.ts @@ -1,6 +1,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { provideTranslateService } from '@ngx-translate/core'; import { PageNotFoundComponent } from './page-not-found.component'; -import { TranslateModule } from '@ngx-translate/core'; describe('PageNotFoundComponent', () => { let component: PageNotFoundComponent; @@ -8,7 +8,8 @@ describe('PageNotFoundComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [PageNotFoundComponent, TranslateModule.forRoot()], + imports: [PageNotFoundComponent], + providers: [provideTranslateService()], }).compileComponents(); fixture = TestBed.createComponent(PageNotFoundComponent); diff --git a/src/app/features/home/pages/about/about.component.spec.ts b/src/app/features/home/pages/about/about.component.spec.ts index c5470d7..3d7f065 100644 --- a/src/app/features/home/pages/about/about.component.spec.ts +++ b/src/app/features/home/pages/about/about.component.spec.ts @@ -1,6 +1,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { provideTranslateService } from '@ngx-translate/core'; import { AboutComponent } from './about.component'; -import { TranslateModule } from '@ngx-translate/core'; describe('AboutComponent', () => { let component: AboutComponent; @@ -8,7 +8,8 @@ describe('AboutComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [AboutComponent, TranslateModule.forRoot()], + imports: [AboutComponent], + providers: [provideTranslateService()], }).compileComponents(); fixture = TestBed.createComponent(AboutComponent); diff --git a/src/app/features/home/pages/api-demo/api-demo.component.spec.ts b/src/app/features/home/pages/api-demo/api-demo.component.spec.ts index 8c37420..41159cc 100644 --- a/src/app/features/home/pages/api-demo/api-demo.component.spec.ts +++ b/src/app/features/home/pages/api-demo/api-demo.component.spec.ts @@ -1,8 +1,8 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; import { provideHttpClient } from '@angular/common/http'; import { provideHttpClientTesting } from '@angular/common/http/testing'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { provideTranslateService } from '@ngx-translate/core'; import { ApiDemoComponent } from './api-demo.component'; -import { TranslateModule } from '@ngx-translate/core'; describe('ApiDemoComponent', () => { let component: ApiDemoComponent; @@ -10,8 +10,8 @@ describe('ApiDemoComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [ApiDemoComponent, TranslateModule.forRoot()], - providers: [provideHttpClient(), provideHttpClientTesting()], + imports: [ApiDemoComponent], + providers: [provideHttpClient(), provideHttpClientTesting(), provideTranslateService()], }).compileComponents(); fixture = TestBed.createComponent(ApiDemoComponent); diff --git a/src/app/features/home/pages/features-demo/features-demo.component.ts b/src/app/features/home/pages/features-demo/features-demo.component.ts index f1671b9..3c926f1 100644 --- a/src/app/features/home/pages/features-demo/features-demo.component.ts +++ b/src/app/features/home/pages/features-demo/features-demo.component.ts @@ -93,8 +93,8 @@ export class FeaturesDemoComponent implements OnInit { }); } - onSelectionChange(selected: User[]): void { - console.log('Selected users:', selected); + onSelectionChange(_selected: User[]): void { + // Selection handled by parent/store if needed } toggleDropdown(): void { diff --git a/src/app/features/home/pages/home/home.component.spec.ts b/src/app/features/home/pages/home/home.component.spec.ts index 6b9df83..15f0e24 100644 --- a/src/app/features/home/pages/home/home.component.spec.ts +++ b/src/app/features/home/pages/home/home.component.spec.ts @@ -1,8 +1,8 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { HomeComponent } from './home.component'; import { provideStore } from '@ngrx/store'; -import { TranslateModule } from '@ngx-translate/core'; -import { reducers, metaReducers } from '../../../../store/app.reducer'; +import { provideTranslateService } from '@ngx-translate/core'; +import { metaReducers, reducers } from '../../../../store/app.reducer'; +import { HomeComponent } from './home.component'; describe('HomeComponent', () => { let component: HomeComponent; @@ -10,8 +10,8 @@ describe('HomeComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [HomeComponent, TranslateModule.forRoot()], - providers: [provideStore(reducers, { metaReducers })], + imports: [HomeComponent], + providers: [provideStore(reducers, { metaReducers }), provideTranslateService()], }).compileComponents(); fixture = TestBed.createComponent(HomeComponent); diff --git a/src/app/features/home/pages/login/login.component.spec.ts b/src/app/features/home/pages/login/login.component.spec.ts index 4ac1b16..6353931 100644 --- a/src/app/features/home/pages/login/login.component.spec.ts +++ b/src/app/features/home/pages/login/login.component.spec.ts @@ -1,11 +1,10 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ReactiveFormsModule } from '@angular/forms'; -import { Router, ActivatedRoute } from '@angular/router'; -import { of } from 'rxjs'; -import { LoginComponent } from './login.component'; +import { ActivatedRoute, Router } from '@angular/router'; +import { provideTranslateService } from '@ngx-translate/core'; import { AuthService } from '../../../../core/services/auth.service'; import { ToastService } from '../../../../shared/services/toast.service'; -import { TranslateModule } from '@ngx-translate/core'; +import { LoginComponent } from './login.component'; describe('LoginComponent', () => { let component: LoginComponent; @@ -26,8 +25,9 @@ describe('LoginComponent', () => { }; await TestBed.configureTestingModule({ - imports: [LoginComponent, ReactiveFormsModule, TranslateModule.forRoot()], + imports: [LoginComponent, ReactiveFormsModule], providers: [ + provideTranslateService(), { provide: AuthService, useValue: mockAuthService }, { provide: Router, useValue: mockRouter }, { provide: ActivatedRoute, useValue: mockActivatedRoute }, From c016f26f951b634a0490420a4d4423069452cdba Mon Sep 17 00:00:00 2001 From: Tommy Heyding Date: Sat, 25 Jul 2026 18:36:38 +0200 Subject: [PATCH 2/2] chore: reorder import statements in retry interceptor --- src/app/core/interceptors/retry.interceptor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/core/interceptors/retry.interceptor.ts b/src/app/core/interceptors/retry.interceptor.ts index b195bbd..2b80ce6 100644 --- a/src/app/core/interceptors/retry.interceptor.ts +++ b/src/app/core/interceptors/retry.interceptor.ts @@ -1,4 +1,4 @@ -import { HttpInterceptorFn, HttpErrorResponse } from '@angular/common/http'; +import { HttpErrorResponse, HttpInterceptorFn } from '@angular/common/http'; import { retry, timer } from 'rxjs'; export const retryInterceptor: HttpInterceptorFn = (req, next) => {