30 lines
1.2 KiB
TypeScript
30 lines
1.2 KiB
TypeScript
|
|
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);
|
||
|
|
});
|
||
|
|
});
|