Угловая проверка формы, как вывести сообщение об ошибке - PullRequest
0 голосов
/ 27 мая 2018

Я тестирую эту управляемую шаблоном форму в угловом формате.

<form  name="editForm" role="form" novalidate (ngSubmit)="save()" #editForm="ngForm">
  <input #cardInput type="text" class="form-control" name="name" id="id_name"
         [(ngModel)]="pacient.name" maxlength="20" />
  <small class="form-text text-danger" id ="ref"[hidden]="!editForm.controls.name?.errors?.maxlength"
         jhiTranslate="entity.validation.maxlength" translateValues="{ max: 20 }">
    This field cannot be longer than 20 characters.
  </small>
</form>

Я проверяю, выводит ли она сообщение об ошибке, когда оно недопустимо, например:

 fit ('Blank input is not valid', async(() => {
               
                comp.paciente.tarjetaSanitaria = 'ddddddddddddddddddddddddddddddddd' ;      
            

                }));    

Как я могу сделать так, чтобы он выводил сообщение об ошибке, когда ввод неверен?

1 Ответ

0 голосов
/ 27 мая 2018

попробуйте это, проверив скрытый атрибут

errorMessage = fixture.debugElement.query(By.css('.text-danger'));
errorMessageElement = errorMessage.nativeElement;
expect(errorMessageElement.hasAttribute('hidden')).toEqual(false);

, чтобы проверить все сообщения об ошибках, которые вы можете использовать queryAll вместо запроса, queryAll возвращает массив DebugElements, это может быть что-то вроде этого

errorMessages = fixture.debugElement.queryAll (By.css('.text-danger'));
errorMessages.foreach(element => {
errorMessageElement = element.nativeElement;
 expect(errorMessageElement.hasAttribute('hidden')).toEqual(false);
})
...