как автоматически вызывать discardPeriodicTasks после тестов в Angular с шуткой? - PullRequest
5 голосов
/ 23 января 2020

Я делаю одноразовую подписку с debounceTime каналом на моем компоненте onInit:

this.subscriptions.add(
  this.updateJobs$
    .pipe(
      filter(jobs => !!jobs.length),
      debounceTime(MyComponent.ListStabilizationTimeInMS),
      first(),
    )
    .subscribe((jobs: Update[]) => {
      // some code
    })
);

Из-за этого мне нужно включать discardPeriodicTasks(); в качестве последней строки после каждого fakeAsync тесты, которые я считаю утомительными. В противном случае я получаю ошибку Error: 1 periodic timer(s) still in the queue. для всех тестов.

Я пытался создать afterEach:

afterEach(()=> {
  discardPeriodicTasks();
});

afterEach(fakeAsync(()=> {
  discardPeriodicTasks();
}));

Но это не работает и единственный способ пройти тесты это вручную добавить discardPeriodicTasks(); ко всем тестам. Было бы здорово, если бы это можно было автоматизировать.

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