emi-challenge-fe/tests/app/core/guards/unsaved-changes-guard.spec.ts

30 lines
1.2 KiB
TypeScript
Raw Normal View History

import { describe, it, expect } from 'vitest';
import { unsavedChangesGuard, CanComponentDeactivate } from '@app/core/guards/unsaved-changes-guard';
import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
describe('unsavedChangesGuard', () => {
it('should return true when component has no canDeactivate method', () => {
const component = {} as CanComponentDeactivate;
const result = unsavedChangesGuard(component, {} as ActivatedRouteSnapshot, {} as RouterStateSnapshot, {} as RouterStateSnapshot);
expect(result).toBe(true);
});
it('should return result of component.canDeactivate when method exists', () => {
const component = { canDeactivate: () => false } as CanComponentDeactivate;
const result = unsavedChangesGuard(component, {} as ActivatedRouteSnapshot, {} as RouterStateSnapshot, {} as RouterStateSnapshot);
expect(result).toBe(false);
});
it('should return true when canDeactivate returns true', () => {
const component = { canDeactivate: () => true } as CanComponentDeactivate;
const result = unsavedChangesGuard(component, {} as ActivatedRouteSnapshot, {} as RouterStateSnapshot, {} as RouterStateSnapshot);
expect(result).toBe(true);
});
});