Модульный тест кармы для функции с трубой и подпиской

#angular #unit-testing #karma-jasmine #angular-unit-test

Вопрос:

Как я буду писать модульный тест для следующего кода? Я попытался это сделать и закрыл часть трубы, но остальное ускользает от меня.

 prefillBroker(brokerId) {
    this.apiService.getBrokers({page: 1, pageSize: 1, brokerId: brokerId}).pipe(
        map((response) => {
            return response.Brokers[0];
        })
    ).subscribe((broker) => {
        this.filteredBrokerOptions = [broker];
        this.createAgentFormGroup.get('broker').setValue(broker, {emitEvent: false});
    }, (error) => {
 });
 

Я попробовал следующее, но безуспешно:

 describe('testing prefill broker details', () => {
    it('should prefill broker details', fakeAsync(() => {
        const brokerId = 53;
        const mockData =
        [
            {
                BrokerCode: "232221511",
                Broker_UID: 1,
                Name: "new test broker 1",
                Type: "Short-term",
                StartDate: "2020-06-26T10:07:55.513Z",
                Status: "Active"
            }
        ]

        const mockObservable = Observable.of(mockData)
        let brokerSpy = spyOn(apiservice, 'getBrokers').and.returnValue(mockObservable)
        component.prefillBroker(brokerId);
        expect(brokerSpy).toHaveBeenCalled;
        apiservice.getBroker(brokerId).subscribe((broker) => {
            component.filteredBrokerOptions = [mockData];
            component.createAgentFormGroup.get('broker').setValue(broker, {emitEvent: false})
        })
    }))
})
 

Комментарии:

1. Покажите свои тесты