Как проверить мою версию гвардии в угловом приложении - PullRequest
0 голосов
/ 21 июня 2019

У меня проблемы с проверкой охранника. Я новичок в этом, и я понятия не имею, как это сделать. Моя версия гвардии всегда блокирует выход из страницы с окном, и это хорошо работает. Кто-нибудь может сказать мне, что мне нужно изменить, чтобы проверить эту функциональность?

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