Модуль вызова mocked api не возвращает данные компоненту во время поверхностного рендеринга - PullRequest
0 голосов
/ 03 июля 2019

У меня есть следующий компонент:

export class VehiclesComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      cars: [],
    };
    autoBind(this);
  }

  componentDidMount () {
    this.fetchData();
  }

  fetchData() {
    const {
      query,
      filter,
      hasAccess,
      value2,
      value,
      value3,
      name,
      topics,
    } = this.props;
    const { data } = this.state;


      return DataService.getCars(
        filter,
        hasAccess,
        query,
      ).then(({ cars }) => {
        this.setState({
          cars,
        });
      });
  };

  render() {
    return(
      {this.state.cars.map(car => (
        <Car
          key={car.id}
          {...car}
        />
      ))}
    )
  }
};

Я хочу проверить это с шуткой / энзимом, особенно с логикой того, сколько автомобильных компонентов отрисовано. Поэтому я издевался над модулем DataService так:

import DataService from '../../services/DataService';
import Car from '../../Car';

import cars from '../cars'; // cars array which has 9 cars


jest.doMock("../../services/DataService", () => ({
  getCars: jest.fn(() => Promise.resolve(cars)),
}));

test('should render 9 tabs', () => {

      expect(wrapper.find(Car).length).toEqual(9);
    });

Но у меня есть ошибка:

 expect(received).toEqual(expected)

    Expected value to equal:
      9
    Received:
       0

Я не уверен, работают ли смоделированные модули так, как ожидается от них во время поверхностного рендеринга компонента. Может кто-нибудь помочь выяснить, почему я могу иметь эту ошибку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...