вопрос!
У меня есть компонент панели поиска, в котором поле поиска используется как поле textarea.
В зависимости от количества искомого текста, я увеличиваю или уменьшаю количество строк самой текстовой области.
Итак, у меня есть некоторые операции, которые имеют дело с нативным элементом textarea.
Например, эта функция
searchbar.ts
focus() {
if (this.textArea) {
this.focussed = true;
this.textArea.nativeElement.setAttribute('rows', this.calcRows());
// extra part ...
}
}
searcbar.spec.ts
describe('focus', () => {
it('should set focussed to true', () => {
component.focussed = false;
component.focus();
expect(component.focussed).toBe(true);
});
it('should set the height of the textArea by setting the row to the correct amount', () => {
spyOn(component.textArea.nativeElement, 'setAttribute');
spyOn(component, 'calcRows').and.returnValue(2);
component.focus();
expect(component.textArea.nativeElement.setAttribute).toHaveBeenCalledWith('rows', 2);
});
});
Тесты на самом деле не проваливаются.
Но я отображаю эту ошибку, и считается, что они относятся не к самому тесту, а к компоненту.
ОШИБКА: 'ОШИБКА', Ошибка типа: undefined не является функцией (оценка
'this.textArea.nativeElement.setAttribute (' строк, this.calcRows ()) ')
Есть идеи как это исправить?
Заранее спасибо