Browse Source

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.
pull/24725/head
Fahri Gedik 1 week ago
parent
commit
b2cbc15234
  1. 2
      templates/app-nolayers/angular/package.json
  2. 30
      templates/app-nolayers/angular/src/app/home/home.component.spec.ts
  3. 4
      templates/app/angular/package.json
  4. 37
      templates/app/angular/src/app/home/home.component.spec.ts
  5. 2
      templates/module/angular/package.json

2
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"
}
}

30
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<HomeComponent>;
const mockOAuthService = {
hasValidAccessToken: vi.fn(),
};
const mockAuthService = {
navigateToLogin: vi.fn(),
};
let mockAuthService: { isAuthenticated: boolean; navigateToLogin: ReturnType<typeof vi.fn> };
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', () => {

4
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"
}
}
}

37
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<HomeComponent>;
const mockOAuthService = {
hasValidAccessToken: vi.fn()
};
const mockAuthService = {
navigateToLogin: vi.fn()
};
let mockAuthService: { isAuthenticated: boolean; navigateToLogin: ReturnType<typeof vi.fn> };
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", () => {

2
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"
}
}
Loading…
Cancel
Save