Модульные тесты должны проверить, открыто ли модальное окно - PullRequest
0 голосов
/ 13 ноября 2018

Я хочу проверить угловые тесты, если '

const Dialog

'Модальное окно ist appier. Я должен симулировать получение данных из базы данных. Я пытаюсь создать новый Subject () и вызывать его, но каждый раз, когда я получаю пустой объект, что я делаю неправильно. У меня есть этот код .ts:

  onOpenEvent(event: CalendarEvent) {
if (event.title !== CalendarTypeConverterUtils.PRIVATE && Terminart.getArt(event.meta) === Terminart.ZTV) {
  this.openTerminDetailModal(event.meta);
   }

    if (Terminart.getArt(event.meta) === Terminart.BANKSPRECHZEIT) {
  const anfangDatum = new Date(event.meta.anfang);
  this.newTermin(anfangDatum);
   }
   }

    private openTerminDetailModal(termin: Termin) {
const terminDetailDialog = this.modalService.open(TerminAnzeigeComponent, { centered: true });
terminDetailDialog.componentInstance.termin = termin;
 }

   openNeuTerminModel(termin: Termin) {
const terminErstellDialog = this.modalService.open(TerminFormularComponent, { size: 'lg', centered: true });

    if (termin.anfang && termin.ende) {
     terminErstellDialog.componentInstance.updateForm(termin);
   }

    terminErstellDialog.result.then((result) => {
     this.updateCalendarEvents();
     if (this.paramService.hatBereitsTerminErstellt) {


const Dialog =this.modalService.open(TerminBestaetigungComponent, { size: 'lg', centered: true });
    terminBestaetDialog.componentInstance.result = result;
      }
    });
  }

И мой юнит-тест:

    it('should show popup if termin is create', () => {
      const myTrigger = new Subject();
       const modal = {
        componentInstance: {
        termin: {} as Termin,
         updateForm(newTermin: Termin) {
          this.termin = newTermin;
        }
       },
      result: myTrigger.toPromise()
    };
  myTrigger.next({
    id: 'test1',
    betreff: 'betreff von test1',
    herkunft: 'definitely not ztv',
    anfang: new Date(2017, 0, 1, 10, 42).getTime()
  });

     const testCalendarEvent: CalendarEvent<Termin> = {
    start: new Date(Number(myTrigger.asObservable.arguments.anfang)),
    title: 'definitely not private',
    meta: myTrigger.asObservable.arguments
  };

  component.onOpenEvent(testCalendarEvent);

  (component as any).paramService.hatBereitsTerminErstellt = true;

const TerminBestaetigungComponent= spyOn((component as any).modalService, 'open').and.returnValue(modal);

  expect(TerminBestaetigungComponent.calls.count()).toBe(1);
});

И я получаю странное сообщение: TypeError: свойства caller, callee и arguments не могут быть доступны для функций строгого режима или объектов аргументов для их вызова

...