Как с помощью Jest проверить что после нажатия кнопки был вызван alert c определенным текстом?
Попыталась сделать вот так:
it('should display an alert when the user tries to add empty value', () => {
jest.setTimeout(100000);
page.alert = jest.fn(text => text);
const addButtonSelector = '#root > div > div > div.ToDoInput > button';
expect(page).toClick(addButtonSelector);
expect(page.alert).toHaveBeenCalledWith('Please enter a todo!');
})
Но тест Failed, потому что алерт никогда не был вызван. Хотя на самом деле алерт вызывается.
it('should handle the click event', () => {
window.alert = jest.fn();
const output = shallow(
<Link title="mockTitle" url="mockUrl" />
);
output.simulate('click');
expect(window.alert).toHaveBeenCalledWith('Кликнули по ссылке!');
});
Попробуйте один из вариантов.
Вместо window.alert написать global.alert
Добавить в обьект globals обьект window в package.json вашего проекта
"jest": {
"verbose": true,
"preset": "react-native",
"setupFiles": ["./jest/setup.js"],
"testRegex": "(/tests/.*|\\.(test|spec))\\.(ts|tsx|js)$",
"transformIgnorePatterns": [
"node_modules/(?!(jest-)?react-native|lottie-react-native)"
],
"globals": {
"window": {}
}
}
3.В файле где вы пишете тест
import { JSDOM } from 'jsdom'
const { window } = new JSDOM()
global.window = window
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть функция, которая в результате выдает объект с датами
Как поправить код, чтобы удалялось https:// и http://, а не только https:// ?
После ввода данных в инпут , в стейт записывается значение "compiled" так же для title , те если вводить false то и в title оказывается false , хотя там вводилось...