@GNG999

Как протестировать сагу, возвращающую promise?

Здравствуйте ! Есть сага
export function * handleAwaitAnalyticsEvent (
  eventName:string,
  timeout:number,
  restParams:any,
) {
  if (eventName) {
   yield call(sendAnalyticsEvent[eventName], restParams);
    return new Promise((resolve, reject) => {
      const script = document.querySelector<HTMLScriptElement>('script[src*="oko."]');
      if(script){
        script.onload = () => resolve(true);
      }
      // script && script.onload = () => resolve(true);
      setTimeout(() => reject(false), timeout);
    })
  }
}

Как протестировать возврат промиса ?
делаю вот так
it('should return promise', async () => {
    const timerPromise = await handleAwaitAnalyticsEvent(DEFAULTS_ANALYTICS_EVENTS.addToJP, 1000, {
      sum: 12,
      id: 1,
    })
    expect(timerPromise).toBe(true)
  });

прилетает ошибка
handleAwaitAnalyticsEvent › should return promise

    expect(received).toBe(expected) // Object.is equality

    Expected: true
    Received: {}

      69 |       id: 1,
      70 |     })
    > 71 |     expect(timerPromise).toBe(true)
         |                          ^
      72 |   });
      73 | });
      74 | 

      at Object.<anonymous> (src/common/sagas/__test__/analytics.test.ts:71:26)
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы