Я новичок в тестировании компонентов реакции-редукта со шуткой и ферментом, и до сих пор я нахожу это проблемой.React-Redux Connected. Проверка правильности действий компонента была отправлена по событию click.
У меня есть страница входа в систему, и я хочу проверить, что правильное действие с ошибкой отправляется, если логин завершается с ошибкой после нажатия кнопки входа в систему.
Так вот как я проверяю свою связную компоненту,
require('../jsDomSetup');
import React from 'react';
import { Provider } from 'react-redux';
import loginDefault, {Login} from '../../app/routes/Login/LoginContainer';
import {mount, shallow} from 'enzyme';
import loginActions from '../../app/redux/actions/loginActions';
import thunk from 'redux-thunk';
import configureMockStore from 'redux-mock-store';
import nock from 'nock';
describe("login container component", function(){
afterEach(() => {
nock.cleanAll();
});
test("loginFailure action is called when login failed due to no crendetials",() =>{
nock('http://192.168.0.2:3000')
.get('/graphql?prettify=true')
.replyWithError('login failed');
// Error message: Incorrect username and password please try again
const mockStore = configureMockStore([thunk]);
const store = mockStore();
const output = mount(<Provider store={store}><loginDefault></loginDefault></Provider>)
let loginButton = output.ref('loginButton');
expect(store.getActions().length).toBe(0);
loginButton.simulate('click');
expect(store.getActions().length).toBe(1);
});
В тот момент, когда я запустить этот тест, он терпит неудачу при попытке имитации нажмите он не может найти элемент кнопки. Однако этот реестр существует, и когда я пробую простой поиск, например, кнопку, он все равно не может найти какую-либо кнопку. Поэтому я предполагаю, что mount возвращает некоторую тихую ошибку или что-то в этом роде.
Я просто хочу проверить, что правильное действие вызывается, когда логин завершается с ошибкой.
Как пройти тест?
Спасибо, что не повезло. моя подписка не вызывается по какой-либо причине: я получаю следующее сообщение об ошибке: Warning: Failed prop type: Required prop 'onpress' не был указан в кнопке. Но он включен как функция в компоненте loginDefault. – user3162979