Я хочу проверить, выполняется ли строка: slideItem.close () внутри setTimeout (). Строка внутри setTimeout () является аргументом, переданным в методе. Как я могу проверить линию внутри setTimeout. Я добавил файл спецификации ниже для справки.
onCompleteActivity(_activity, slidingItem: ItemSliding) {
this.store.dispatch(new activitiesActions.SelectActivity(_activity));
this.utilService.openPage(
ActivityCompletionPageComponent, true,
{
leadId: _activity.leadId, fromSchedList: true
}
);
setTimeout(function() {
slidingItem.close();
}, 1000);
}
spec.ts:
it('should open: ActivityCompletionPageComponent on onCompleteActivity', fakeAsync(() => {
spyOn(component.utilService, 'openPage');
spyOn(component.slidingItem, 'close');
component.onCompleteActivity(activity, component.slidingItem);
expect(component.utilService.openPage).toHaveBeenCalled();
expect(component.utilService.openPage).toHaveBeenCalledWith(ActivityCompletionPageComponent,
true,
{
leadId: activity.leadId,
fromSchedList: true
})
tick(1000);
fixture.detectChanges();
fixture.whenStable().then(() => {
expect(component.slidingItem.close).toHaveBeenCalled()
})