Как проверить switchMap в ng-select - PullRequest
0 голосов
/ 10 января 2019

Я изо всех сил пытаюсь создать тест, который вызовет вызов 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']))
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...