Я получаю эту ошибку:
TypeError: Cannot read property 'url' of undefined
Причина в этом разделе кода:
export class ImageCardComponent implements OnInit {
@Input() image: any; // Can be an image or imageToUpload
imageUrls = [];
...
ngOnInit() {
this.imageUrls.push((this.image as any).url);
this.image.outOfSync = true;
}
тестовый код
describe('ImageCardComponent', () => {
let component: ImageCardComponent;
let fixture: ComponentFixture<ImageCardComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ImageCardComponent ],
imports: [FormsModule],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ImageCardComponent);
component = fixture.componentInstance;
fixture.detectChanges();
component.image = getImageGetResponseMock().image;
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
фиктивные данные
export function getImageGetResponseMock() {
return {
id: 1,
image: [
{
id: 2,
height: 90,
width: 160,
format: 'jpg',
url: 'https://i.imgflip.com/mlqo9.jpg?a430032',
tags: ['testTag']
}
]
};
}
Как я могу исправить это? Нужно ли мне объединить два моих возможных ввода в общий класс или есть способ предоставить тестовый сценарий макет ввода?