Тестирование форм с помощью ngModel с кармой и жасмином - PullRequest
0 голосов
/ 31 октября 2018

Я очень новичок в тестировании Angular, и я хотел бы узнать о нем больше. Я написал следующую неправильную форму (здесь ошибка в том, что ник должен принимать только строку из 10 цифр, а я не написал для нее никакой схемы)

      <form (submit)="onLoginSubmit()">
        <p>NIC number</p>
        <input [(ngModel)]="f_nic" name="nic" type="text" placeholder="NIC number" required>
        <p>Password</p>
        <input [(ngModel)]="f_password" name="password" type="password" placeholder="Password"  required>
        <input type="submit"  value="Login" name="loginbutton">
        <flash-messages></flash-messages>
      </form>

Я хочу показать, что форма остается в силе, даже если я введу неправильный ник. Вот моя попытка

it('form invalid on wrong data types', fakeAsync(() => {
const username = 'username';
const password = 'password';
const usernameField = de.query(By.css('input[name=nic]')).nativeElement;
const passwordField = de.query(By.css('input[name=password]')).nativeElement;
const form = de.query(By.css('form')).nativeElement;
fixture.detectChanges();


usernameField.focus();
passwordField.focus();
fixture.detectChanges();

usernameField.value = username;
passwordField.value = password;
usernameField.dispatchEvent(new Event('input'));
passwordField.dispatchEvent(new Event('input'));
form.dispatchEvent(new Event('click'));
tick();
fixture.detectChanges();

console.log(component);
expect(usernameField.value).toEqual(username);
expect(component.f_nic).toEqual(username);  // ERROR
expect(form.classList.contains('ng-invalid')).toBeTruthy(); //ERROR

}));

Однако следующий код возвращает ошибку в обеих точках, говоря, что ожидание undefined будет «username», а второе - ожидание false, чтобы быть правдивым. Я что-то здесь упускаю с тиковыми событиями или отправкой событий?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...