import { of } from 'rxjs'; import { ForecastService } from 'app/modules/forecast/services/forecast.service'; import { createForecastAggregations, createForecastApiResponse } from 'app/testUtils/mocks/forecast.mock'; import { take } from 'rxjs/operators'; describe('Forecast service tests', () => { const mockApiClient = { getForecast: jest.fn(), }; const UNKNOWN_POOL_ID = 6666666; const sut = new ForecastService(mockApiClient); it('executes fetching forecast data', (done) => { const forecastAggregationsMock = createForecastAggregations(); const forecastApiResponseMock = createForecastApiResponse(); mockApiClient.getForecast = jest.fn(() => of(forecastApiResponseMock)); sut.getForecast(1).pipe(take(1)).subscribe((data) => { expect(data).toEqual(forecastAggregationsMock); done(); }); }); it('returns empty array for unknown poolId', () => { const forecastAggregations = []; mockApiClient.getForecast = jest.fn(() => of(forecastAggregations)); sut.getForecast(UNKNOWN_POOL_ID).pipe(take(1)).subscribe((data) => expect(data).toEqual(forecastAggregations)); }); });