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); }); });