В моем ngOnInit
я проверяю маршрут, делаю кое-что, а затем настраиваю interval
ngOnInit(): void {
this.routeSubscription = this.route.paramMap.subscribe(x => {
...
// Reload the data every 60 seconds
interval(60_000)
.pipe(takeUntil(this.cancelInterval$))
.subscribe(() => this.rows$ = this.orderService.active())
})
}
Когда я пытаюсь выполнить модульное тестирование, жасмин прерывается, потому что asyn c метод не вернулся достаточно быстро. Я делаю это (как подописание основного, которое выполняет все обычные TestBed
настройки):
describe('when showing active orders', () => {
beforeEach(() => {
activatedRoute.setParamMap({})
fixture.detectChanges()
})
it('...', async () => {
await fixture.whenStable()
...
})
Кажется, что он застрял из-за интервала. Я думал, что могу просто вызвать discardPeriodicTasks()
в конце метода beforeEach
, но это не работает.
Так что я ищу любой правильный способ справиться с этим при тестировании или способ в производственном коде выполнять интервальный вызов только в том случае, если он не запускается через тестирование.
Angular CLI: 9.0.7
Node: 14.4.0
Angular : 9.1.6