Я изо всех сил пытаюсь создать тест, который вызовет вызов API
Шаблон:
<ng-select [items]="people3$ | async" bindLabel="value" [hideSelected]="true" formControlName="user" [typeahead]="people3input$">
</ng-select>
Контроллер:
public people3input$ = new Subject<string>();
public people3$ = this.people3input$
.pipe(
debounceTime(200),
distinctUntilChanged(),
switchMap(term => this.api(term).pipe(
catchError(() => of([])), // empty list on error
))
);
Этот тест пройден, но метод API никогда не вызывается
describe('people3$()', () => {
it('should call api', () => {
class MockApi {
search(term) {
console.log('I am never called')
return of(['test123'])
}
}
component.api = new MockApi().search;
component.people3input$.next('ttt');
component.people3input$.subscribe(result => expect(result).toEqual(['test123']))
});
});