dimanche 26 août 2018

Not working tests for moct store Mocha Enzyme

I am trying to test if a button dispatches an action but instead of an action type I get []. The functionality works completely fine outside the test this is why I don't understand why the test fails.

My test:

const mockStore = configureStore();
const store = mockStore({});

describe('buttonUploadWorks', () => {
  it('checks if the button for upload dispatches an action', () => {
    const wrapper = shallow(
      <Provider store = {store}>
        <DropzoneComponent.WrappedComponent/>
      </Provider>).dive();
    const uploadButton = wrapper.find('button').at(0);
    uploadButton.simulate('onClickUpload');
    const expectedAction = UPLOAD_STARTING;
    wrapper.setState({ accepted: ['abc'] });
    const action = store.getActions();
      expect(action).to.equal(expectedAction);
  });
});

My actions:

export const uploadStarting = () => {
  return {type: UPLOAD_STARTING};
};

export const uploadSuccess = uploadMessage => {
  return {type: UPLOAD_SUCCESS, uploadMessage};
};

export const uploadFail = error => {
  return {type: UPLOAD_FAIL, error};
};

export function tryUpload (file) {
  const formData = new FormData();
  formData.append('file', file);
  return (dispatch) => {
    dispatch(uploadStarting());
    axios.post(filesEndpoint, formData).then(function (response) {
      dispatch(uploadSuccess(response));
    }).catch(function (error) {
      dispatch(uploadFail(error));
    });
  };
};

And the button:

    <button className='buttonUpload' onClick={() => { this.state.accepted.length > 0 ? this.onClickUpload().bind(this) : alert('No files presented'); }}>UPLOAD</button>

onClickUpload() {
    this.props.dispatch(tryUpload(this.state.accepted[0]));
    localStorage.clear();
    this.setState({accepted: []});
    this.props.history.push(searchPath);
  }

Aucun commentaire:

Enregistrer un commentaire