Я новичок в Жасмин, и я тестирую через пользовательский интерфейс, поэтому после ввода значений в поле ввода поиска и запуска события keyup вызывается функция поиска, которую я подтвердил, регистрируя в разных точках, но вызов API не инициируется, чтовнутри функции поиска.Нужно ли использовать await или что-то в этом роде?
dashboard.spec file
beforeEach(() => {
inputElement = fixture.nativeElement.querySelector('input[name=search]');
inputElement.focus()
inputElement.value = '131420'
inputElement.dispatchEvent(new Event('input'));;
fixture.detectChanges();
keyUp().then(async () => {
expect(component.searchText).toEqual(inputElement.value)
});
});
it('should update the input', () => {
fixture.detectChanges();
console.log(component, 'component')
})
function keyUp() {
inputElement.dispatchEvent(new KeyboardEvent('keyup', { 'key': 'Space' }));
fixture.detectChanges();
inputElement.blur();
return fixture.whenStable();
}
функция поиска, которая вызывается при запуске события keyup из пользовательского интерфейса:
search(event) {
if (event) {
console.log(event, 'event');
}
vm.tabHeight = 385;
vm.selectedContract = 0;
vm.member = {};
vm.finance = null;
vm.accountId = null;
vm.searchLoading = true;
var searchText = vm.searchText;
console.log(searchText, 'searchText')
if (searchText) {
searchText = searchText.replace(/\(/g, '');
searchText = searchText.replace(/\)/g, '');
searchText = searchText.replace(/\-/g, '');
searchText = searchText.replace(/\&/g, '');
console.log('here')
vm.dashboardService.search(searchText)
.subscribe(res => {
console.log('got search response', res);
vm.searchResult = res.hits;
vm.searchLoading = false;
}, err => {
console.error('got search error', err);
vm.searchLoading = false;
});
} else {
vm.searchLoading = false;
}
}