У меня есть html
Предыдущая сессия уже существует. Пожалуйста, повторно введите пароль для {{username}} или нажмите здесь, чтобы выйти и перейти на домашнюю страницу
<div class="flex-container">
<!--
app login form is child of validate session here. One of the ways to commuicate from child to parent is to
emit event from child and handle it in parent. Note that the event emitter name in child is used here i.e.
app-login-form has @Output() formOutputEvent: EventEmitter<LoginFormValues>;
-->
<app-login-form #loginForm (formOutputEvent)="handleFormValues($event)" [userId]="username"></app-login-form>
</div>
Я хочу смоделировать нажатие <a>
в моем тесте. Я пытался использовать jquery
trigger
, но это не сработало. Но если я использую nativeElement.click()
, то контрольный пример проходит. Почему jquery.trigger
не работает?
Не работает
fit('should send signout request if user decides to cancel signin using id from existing session',()=>{
let userService:UserManagementService = TestBed.get(UserManagementService);
spyOn(userService,'onUserSignout');
//expect(component.cancelLoginLink).toBeTruthy();
expect($("#cancel-signin-link")).toBeTruthy();
$("#cancel-signin-link").trigger("click");
//component.cancelLoginLink.nativeElement.click();
expect(userService.onUserSignout).toHaveBeenCalled();
});
Но это работает
fit('should send signout request if user decides to cancel signin using id from existing session',()=>{
let userService:UserManagementService = TestBed.get(UserManagementService);
spyOn(userService,'onUserSignout');
expect(component.cancelLoginLink).toBeTruthy();
//expect($("#cancel-signin-link")).toBeTruthy();
//$("#cancel-signin-link").trigger("click");
component.cancelLoginLink.nativeElement.click();
expect(userService.onUserSignout).toHaveBeenCalled();
});
Я также заметил, что если я использую jquery
, тодаже это ожидание проходит expect($("#cancel-signin-lk")).toBeTruthy();
(НЕПРАВИЛЬНОЕ ИМЯ ID)