Как модульно протестировать функцию модального закрытия начальной загрузки в jasmine — Angular8

#angular #jasmine #karma-jasmine

Вопрос:

У меня есть метод в одном из файлов ts, в котором он скроет модальный загрузчик. Этот метод имеет параметр, который фактически является модальным экземпляром, и с помощью метода jQuery hide() я скрываю модальное всплывающее окно.

 modalClose(modal: ModalCompoment) {
   this.open = false;
   modal.modalInstance.getModalInstance().hide();
 }
 

код modal.component.ts

 export class ModalDialogComponent implements Oninit { 
  @input() modalId = 'modal-dialog';
  @Input() title = '';
  @ContentChild('modalHead', {static: false}) headerTemplate: TemplateRef<any>;; false
  @ViewChild('modalInstance', {static}) modalInstance: ElementRef;
 
  constructor() {}
  ngOnInit() {}

   getModalInsatnce : any{
     const modal = Object. 
     getOwnPropertyNames(this.modalInsatnce. nativeElement). 
     filter(n 
       => n.startsWith('jquery')). map(n=> this.modalInsatnce. 
      nativeElement[n]['bs.modal']). find(j=> j!== undefined);
     return modal;
      }
     }
  }
 

Код файла спецификации

 it('test modal' () => {
 let modalComp : ModalComponent;
 let fixture: ComponentFixture<ModalComponent>;
 fixture = TestBed.createComponent(modalComp);
 modalComp = fixture. componentInsatnce;
 component.modalClose(modalComp);
 expect(component.open).toEqual(false);
 // need to cover hide() code line
});
 

С помощью этого кода я получаю ошибку: Не удается прочитать свойство nativeElement неопределенного. Мне нужно описать модульный тест для строки modal.modalInstance.getModalInstance().скрыть();. Попросите кого — нибудь помочь в этом вопросе.

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

1. Пожалуйста, поделитесь тестом, который вы написали до сих пор, чтобы мы могли предложить улучшения в нем.

2. Я не смог передать модальный экземпляр как событие в файле спецификации.

3. Я хотел бы увидеть объект события, который вы передали в своем тесте при вызове метода modalClose

4. Вы собираетесь только проверить / утверждать, что был вызван метод hide() modalInstance ?

5. ДА. Как передать getModalInsatnce и спрятаться здесь.