Как я могу протестировать угловую анимацию для метода, получающего розетку маршрутизатора? - PullRequest
0 голосов
/ 29 мая 2019

Я настраиваю UT (используя жасмин) для приложения Angular 7, чтобы проверить метод, который использует эффект угловой анимации на основе текущего свойства анимации маршрута.

Я даже не знаю, как определить это для жасмина

//#region ANGULAR 7 SOURCE CODE
getAnimationEffect(outlet: RouterOutlet): string {
    let currentAnimationEffect = '';
    if (outlet && outlet.activatedRouteData) {
      if (outlet.activatedRouteData['moduleIndex'] &&
          outlet.activatedRouteData['moduleIndex'] > 0 &&
          outlet.activatedRouteData['moduleIndex'] !== this.currentModuleIndex) {
        this.currentModuleIndex = _.cloneDeep(outlet.activatedRouteData['moduleIndex']);
        currentAnimationEffect = 'isModuleLanding';
      } else {
        currentAnimationEffect = outlet.activatedRouteData['animation'];
      }
    } else {
      currentAnimationEffect = 'isModuleLanding';
    }

    return currentAnimationEffect;
  }
//#endregion

//#region ANGULAR 7 UT
describe('testing routing stuff', () => {
  const testRoutes: Routes = [
    {
      path: 'module',
      data: { title: 'Module', moduleIndex: 1 }
    },
    {
      path: 'tab',
      data: { title: 'Module -> Tab', animation: 'tabLanding', moduleIndex: 1 }
    },
    {
      path: 'detail',
      data: { title: 'Module -> Tab -> Detail', animation: 'detailLanding', moduleIndex: 1 }
    }
  ];

beforeEach(async(() => {

    TestBed.configureTestingModule({
      imports: [ RouterTestingModule.withRoutes(testRoutes) ],
      ...
    })
    .compileComponents();
  }));
});

  it('should get the animation effect that correspond to the current active route',
     async(() => {

      // Provoke navigation end to route 'module/tab/detail'
      const event = new NavigationEnd(666, '/module/tab', '/module/tab/detail');
      TestBed.get(Router).events.next(event);

      // Get response to current active route animation effect that correspond to this route
      const testAnimationEffect = componentBaseView.getAnimationEffect(<IDontKnowHowToDefineAParamHere>)

      // Assert
      expect(testAnimationEffect).toEqual('detailLadning');
    })
  );

});
//#endregion

Я ожидал, что смогу протестировать этот эффект анимации, когда текущий активированный маршрутизатор, его вкладка / x / detail, вернет мне «detailLanding».

Я не знаю, как мне это настроить, и я не смог найти ни одного теста, в котором метод получал бы сам маршрутизатор-розетку.

Есть мысли здесь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...