Модульное тестирование NbgModal — Не удается прочитать свойства неопределенного (чтение «Возвращаемое значение»)

#angular #typescript #unit-testing #karma-jasmine #karma-runner

Вопрос:

У меня есть простая функция, которая вызвала всплывающее окно NGB Modal, и я пытался написать тестовые примеры для того же самого.

Метод «this.modalService.open()» был успешным, но проблема заключалась в том, что «mockModalRef.componentInstance» и «mockModalRef.result» не покрывали.

.ts

 @Injectable({  providedIn: 'root' });  export class HelperComponent {  constructor(  private modalService: ngbModal  ) { }   onAction() {  const bigModelConfig = {  windowClass: 'Small-modal'  } as NgbModalOptions;   const modalref = this.modalService.open(ConfirmationPopupComponent, bigModelConfig);  modalref.componentInstance.message = 'Are you sure want to proceed';  modalref.result.then(result =gt; {  if ('Yes' === result) {  console.log('True');  }  })  } }  

.Спецификация

 export class MockNgbModalRef{  componentInstance = {  message: undefined,  title: undefined  }  result: Promiselt;anygt; = new Promise((resolve, reject) =gt; resolve (true));  }   describe('HelperComponent', () =gt; {  let component: HelperComponent;  let mockActiveModal: NgbActiveModal;  let mockModalService: NbgModal;  let mockModalRef: MockNgbModalRef = new MockNgbModalRef();   beforeEach(async () =gt; {    mockModalService = jasmine.createSpyObj('NbgModal', ['open']).and.returnValue(mockModalRef as any);  mockActiveModal = jasmine.createSpyObj('NgbActiveModal', ['Close']);    TestBed.configureTestingModule({  declarations: [ HelperComponent ],  imports[  NbgModule  ],  providers: [  {provide: NgbModal, useValue: mockModalService},  {provide: NgbActiveModal, useValue: mockActiveModal}  ]  })  .compileComponents();  });    beforeEach(() =gt; {  component = TestBed.inject(HelperComponent);  mockModalService = TestBed.inject(NgbModal);    });    it('should create', () =gt; {  const bigModelConfig = {  windowClass: 'Small-modal'  } as NgbModalOptions;   component.onAction();    expect(mockModalService.open).toHaveBeenCalledWith(ConfirmationPopupComponent, bigModelConfig);  expect(mockModalRef.componentInstance.message).toEqual('Are you sure want to proceed');  mockModalRef.result.then((result) =gt; {  expect(result).toEqual('Yes');  })  });  });  

Есть идеи, что не так и где я пропал.