В моем приложении Angular у меня есть простой компонент, содержащий форму с полем ввода текста.
Это поле ввода принимает только строку короче 255 символов. Когда пользователь вставляет текст длиной более 255 символов, отображается ошибка:
Это тестовый пример, который я написал:
it('should display error when the inserted description text is too long', () => {
const inputElement: HTMLInputElement = hostElement.querySelector('.input-element');
inputElement.value = getRandomString(256);
inputElement.dispatchEvent(new Event('input'));
fixture.detectChanges();
const errorElement: HTMLElement = hostElement.querySelector('.error-element');
expect(errorElement).toBeTruthy();
expect(errorElement.innerText).toContain('Please enter no more than 255 characters.');
});
Однако, несмотря на то, что я использую fixture.detectChanges()
после отправки события input
, и несмотря на то, что статус элемента управления формой НЕДЕЙСТВИТЕЛЕН и имеет ошибку (я проверил путем отладки кода), сообщение об ошибке не отображается во время выполнения теста, поэтому ожидания не оправдываются.