Как я могу тестировать подсластитель с помощью onAfterClose? - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь проверить подсластитель, имеющий onAfterClose.

Я высмеиваю подсластитель spyOn (Swal, "огонь"), он не будет вызывать onAfterClose. Что я должен установить spyOn?

пример .ts

testFunction(value) {
if (!value) {
   Swal.fire({ type: 'success', title: 'Success', text: 'Success', onAfterClose: () => {
      // call function
      this.clearAll();
      ...
   }
}

пример спец.ц

describe('test function', () => {
   it('should call clearAll when call testFunction and close sweetalert', () => {
      spyOn(Swal,"fire");
      component.testFunction(false);
      // Swal.close();
      // expect(component.clearAll).toHaveBeenCall();
})
})

Я хочу проверить ожидать (component.clearAll) .toHaveBeenCalled ();

1 Ответ

0 голосов
/ 05 апреля 2019

Шпионы не возвращают никакого значения или не запускают ничего по умолчанию, поэтому заставьте его вернуть / запустить то, что соответствует сигнатуре функции. Вам нужно будет вызвать обратный вызов самостоятельно. Попробуйте это:

spyOn(Swal,"fire").and.callFake(args => { args.onAfterClose(); });
component.testFunction(false);
expect(component.clearAll).toHaveBeenCalled();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...