Мне удалось получить решение с помощью следующей функции:
const mockFunction = (times) => {
let count = 0;
return Observable.create((observer) => {
if (count++ > times) {
observer.next(latestData);
} else {
observer.next(waitingData);
}
});
};
И я использовал шутку, чтобы шутить с возвращаемым значением:
jest.spyOn(service, 'getData').mockReturnValue(mockFunction(4));
Это вернет 4 ожидающих ответа и последний из них.
jest.spyOn(service, 'getData').mockReturnValue(mockFunction(20));
Любое число выше 11 приведет к превышению моего максимального числа попыток