Как можно проверить подключенные компоненты с помощью Jest / Enzyme? - PullRequest
0 голосов
/ 17 января 2019

Я не получаю 100% покрытия по тестам, потому что Джест говорит, что мне не хватает покрытия по линии 67:

export default compose(
  connect(store => ({ // LINE 67
    accountGuid: store.global.accountGuid,
    shipmentsCSV: store.shipments.shipmentsCSV,
  })),
  translate(),
)(DownloadCSVItem);

И вот тест, который я написал для этого компонента:

import React from 'react';
import { mount } from 'enzyme';
import FileSaver from 'file-saver';
import DownloadCSVItem from '../../DownloadCSVItem';

jest.mock('file-saver', () => ({
  saveAs: jest.fn(),
}));

global.Blob = function(content, options) {
  return { content, options };
};

describe('DownloadCSVItem component', () => {
  let props;

  beforeEach(() => {
    props = {
      t: k => k,
      accountGuid: 'abc-123',
      shipmentsCSV: {
        totalCount: 0,
        shipments: [],
      },
    };
  });

  it('renders DownloadCSVItem and check if class exists', () => {
    const wrapper = mount(<DownloadCSVItem.WrappedComponent {...props} />);

    expect(wrapper.exists('.download-csv-item')).toBeTruthy();
    expect(wrapper.exists('button')).toBeTruthy();
  });

  it('triggers stateless component downloadFile function', () => {
    FileSaver.saveAs = jest.fn();

    const wrapper = mount(<DownloadCSVItem.WrappedComponent {...props} />);

    expect(wrapper.find('#download-csv-item > li > button')).toHaveLength(1);

    wrapper.find('#download-csv-item > li > button').simulate('click');

    expect(FileSaver.saveAs).toBeCalled();
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...