У меня проблемы с проверкой охранника.
Я новичок в этом, и я понятия не имею, как это сделать.
Моя версия гвардии всегда блокирует выход из страницы с окном, и это хорошо работает.
Кто-нибудь может сказать мне, что мне нужно изменить, чтобы проверить эту функциональность?
Cab-deactivate.guard.ts
import { Injectable } from '@angular/core';
import { CanDeactivate } from '@angular/router';
import { ComponentCanDeactivate } from './component-can-deactivate';
@Injectable()
export class CanDeactivateGuard implements CanDeactivate<ComponentCanDeactivate> {
public canDeactivate(component: ComponentCanDeactivate): boolean {
if (!component.canDeactivate()){
if (confirm("You have unsaved changes! If you leave, your changes will be lost.")) {
return true;
}
return false;
}
return true;
}
}
can-deactivate.guard.spec.ts (не работает)
import { MockComponent } from '@app/canvas/window/services/window.service.spec';
import { CanDeactivateGuard } from './can-deactivate.guard';
describe('[CanDeactivateGuard]', () => {
describe('canActivate', () => {
let canDeactivateGuard: CanDeactivateGuard;
let testValue;
let mockComponent;
it('should return false', () => {
canDeactivateGuard = new CanDeactivateGuard();
mockComponent = new MockComponent()
testValue = canDeactivateGuard.canDeactivate(mockComponent);
expect(testValue).toEqual(false);
});
it('should return true', () => {
canDeactivateGuard = new CanDeactivateGuard();
mockComponent = new MockComponent()
testValue = canDeactivateGuard.canDeactivate(mockComponent);
expect(testValue).toEqual(true);
});
});
});