From b2cbc15234240985df2194894117826dd415eac2 Mon Sep 17 00:00:00 2001 From: Fahri Gedik <53567152+fahrigedik@users.noreply.github.com> Date: Thu, 29 Jan 2026 15:18:15 +0300 Subject: [PATCH] Refactor HomeComponent tests and update vitest version Removed OAuthService mocking from HomeComponent tests and switched to using AuthService's isAuthenticated property for login state checks. Also updated vitest devDependency version constraint from ^4.0.8 to ^4.0.0 in Angular template package.json files. --- templates/app-nolayers/angular/package.json | 2 +- .../src/app/home/home.component.spec.ts | 30 ++++++--------- templates/app/angular/package.json | 4 +- .../src/app/home/home.component.spec.ts | 37 ++++++++----------- templates/module/angular/package.json | 2 +- 5 files changed, 30 insertions(+), 45 deletions(-) diff --git a/templates/app-nolayers/angular/package.json b/templates/app-nolayers/angular/package.json index 2ec6ed3912..faccdf181d 100644 --- a/templates/app-nolayers/angular/package.json +++ b/templates/app-nolayers/angular/package.json @@ -53,6 +53,6 @@ "eslint": "^8.0.0", "jsdom": "^27.1.0", "typescript": "~5.9.0", - "vitest": "^4.0.8" + "vitest": "^4.0.0" } } \ No newline at end of file diff --git a/templates/app-nolayers/angular/src/app/home/home.component.spec.ts b/templates/app-nolayers/angular/src/app/home/home.component.spec.ts index 0514873406..ea07d9ad36 100644 --- a/templates/app-nolayers/angular/src/app/home/home.component.spec.ts +++ b/templates/app-nolayers/angular/src/app/home/home.component.spec.ts @@ -3,20 +3,19 @@ import { ThemeSharedTestingModule } from '@abp/ng.theme.shared/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { NgxValidateCoreModule } from '@ngx-validate/core'; import { HomeComponent } from './home.component'; -import { OAuthService } from 'angular-oauth2-oidc'; import { AuthService } from '@abp/ng.core'; import { vi } from 'vitest'; describe('HomeComponent', () => { let fixture: ComponentFixture; - const mockOAuthService = { - hasValidAccessToken: vi.fn(), - }; - const mockAuthService = { - navigateToLogin: vi.fn(), - }; + let mockAuthService: { isAuthenticated: boolean; navigateToLogin: ReturnType }; beforeEach(async () => { + mockAuthService = { + isAuthenticated: false, + navigateToLogin: vi.fn(), + }; + await TestBed.configureTestingModule({ imports: [ CoreTestingModule.withConfig(), @@ -25,11 +24,6 @@ describe('HomeComponent', () => { HomeComponent, ], providers: [ - /* mock providers here */ - { - provide: OAuthService, - useValue: mockOAuthService, - }, { provide: AuthService, useValue: mockAuthService, @@ -38,23 +32,21 @@ describe('HomeComponent', () => { }).compileComponents(); }); - beforeEach(() => { + it('should be initiated', () => { fixture = TestBed.createComponent(HomeComponent); fixture.detectChanges(); - }); - - it('should be initiated', () => { expect(fixture.componentInstance).toBeTruthy(); }); describe('when login state is true', () => { - beforeAll(() => { - mockOAuthService.hasValidAccessToken.mockReturnValue(true); + beforeEach(() => { + mockAuthService.isAuthenticated = true; + fixture = TestBed.createComponent(HomeComponent); + fixture.detectChanges(); }); it('hasLoggedIn should be true', () => { expect(fixture.componentInstance.hasLoggedIn).toBe(true); - expect(mockOAuthService.hasValidAccessToken).toHaveBeenCalled(); }); it('button should not be exists', () => { diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 9695146bd7..5d1824c650 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -53,6 +53,6 @@ "eslint": "^8.0.0", "jsdom": "^27.1.0", "typescript": "~5.9.3", - "vitest": "^4.0.8" + "vitest": "^4.0.0" } -} \ No newline at end of file +} \ No newline at end of file diff --git a/templates/app/angular/src/app/home/home.component.spec.ts b/templates/app/angular/src/app/home/home.component.spec.ts index 49ee6cea57..4efbb17f0d 100644 --- a/templates/app/angular/src/app/home/home.component.spec.ts +++ b/templates/app/angular/src/app/home/home.component.spec.ts @@ -3,20 +3,19 @@ import { ThemeSharedTestingModule } from "@abp/ng.theme.shared/testing"; import { ComponentFixture, TestBed } from "@angular/core/testing"; import { NgxValidateCoreModule } from "@ngx-validate/core"; import { HomeComponent } from "./home.component"; -import { OAuthService } from 'angular-oauth2-oidc'; import { AuthService } from '@abp/ng.core'; import { vi } from 'vitest'; describe("HomeComponent", () => { let fixture: ComponentFixture; - const mockOAuthService = { - hasValidAccessToken: vi.fn() - }; - const mockAuthService = { - navigateToLogin: vi.fn() - }; + let mockAuthService: { isAuthenticated: boolean; navigateToLogin: ReturnType }; beforeEach(async () => { + mockAuthService = { + isAuthenticated: false, + navigateToLogin: vi.fn() + }; + await TestBed.configureTestingModule({ imports: [ CoreTestingModule.withConfig(), @@ -25,11 +24,6 @@ describe("HomeComponent", () => { HomeComponent ], providers: [ - /* mock providers here */ - { - provide: OAuthService, - useValue: mockOAuthService - }, { provide: AuthService, useValue: mockAuthService @@ -38,23 +32,21 @@ describe("HomeComponent", () => { }).compileComponents(); }); - beforeEach(() => { + it("should be initiated", () => { fixture = TestBed.createComponent(HomeComponent); fixture.detectChanges(); - }); - - it("should be initiated", () => { expect(fixture.componentInstance).toBeTruthy(); }); describe('when login state is true', () => { - beforeAll(() => { - mockOAuthService.hasValidAccessToken.mockReturnValue(true); + beforeEach(() => { + mockAuthService.isAuthenticated = true; + fixture = TestBed.createComponent(HomeComponent); + fixture.detectChanges(); }); it("hasLoggedIn should be true", () => { expect(fixture.componentInstance.hasLoggedIn).toBe(true); - expect(mockOAuthService.hasValidAccessToken).toHaveBeenCalled(); }); it("button should not be exists", () => { @@ -65,13 +57,14 @@ describe("HomeComponent", () => { }); describe('when login state is false', () => { - beforeAll(() => { - mockOAuthService.hasValidAccessToken.mockReturnValue(false); + beforeEach(() => { + mockAuthService.isAuthenticated = false; + fixture = TestBed.createComponent(HomeComponent); + fixture.detectChanges(); }); it("hasLoggedIn should be false", () => { expect(fixture.componentInstance.hasLoggedIn).toBe(false); - expect(mockOAuthService.hasValidAccessToken).toHaveBeenCalled(); }); it("button should be exists", () => { diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 6b341274b0..ffd08c8eec 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -55,6 +55,6 @@ "ng-packagr": "~21.0.0", "symlink": "^2.0.0", "typescript": "~5.9.0", - "vitest": "^4.0.8" + "vitest": "^4.0.0" } } \ No newline at end of file