У меня есть ModalComponent, который принимает некоторые свойства от родителя через @ Input.
Это вызывает проблемы с тестированием
TypeError: Невозможно прочитать свойство 'name' из неопределенного
Имя используется в ngOnInit и должно быть от @Input displayeddata
.
Как мне пройти его в моем модульном тесте?
В настоящее время мой тест выглядит так
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ModalComponent, FilterComponent],
imports: [ReactiveFormsModule, TranslateModule]
})
.compileComponents();
}));
beforeEach(async () => {
fixture = TestBed.createComponent(ModalComponent);
component = fixture.componentInstance;
component.displayeddata = {
name: 'One component',
caption: 'Caption',
componentName: 'TextareaComponent'
};
fixture.detectChanges();
});
it('should create', async () => {
fixture.detectChanges();
fixture.whenStable().then(() => {
expect(component).toBeTruthy();
});
});
Это один тест для моего компонента, и он не проходит.
Обновление # 1
Вот что я получаю console.log(this.displayeddata);
Object
caption: "Caption"
component: "TextareaComponent"
name: "One component"
Я также немного изменил свой код (обновил код) и теперь получаю новую ошибку TypeError: Cannot read property 'caption' of undefined
Обновление № 2
modal.component.ts
export class ModalComponent implements OnInit {
@Input() showenpunctsnow;
@Input() displayeddata;
@Output() ComponentParametrsInputs: FormGroup = this.fb.group({
name: ['', Validators.required],
caption: ['', Validators.required],
component: ['']
});
constructor(private fb: FormBuilder) {}
ngOnInit() {
console.log(this.displayeddata);
this.ComponentParametrsInputs = this.fb.group({
name: [this.displayeddata.name, Validators.required],
caption: [this.displayeddata.caption, Validators.required],
component: [this.displayeddata.componentName]
});
}