Как исправить: TypeError: projects.map не является функцией - PullRequest
0 голосов
/ 13 июня 2019

У меня проблема с тестированием массива.Пожалуйста, проверьте скриншот https://ibb.co/0Dx26vf

  • Я пытался установить другую версию Jest, но я получаю ту же ошибку.
  • Я использую CRA без npm run jest (это непроблема)
    beforeEach(() => {
      dashboard.find('.review-number').simulate('click')
    })

    it('Call the `addFeedback` callback', () => {
      expect(mockRemove).toHaveBeenCalledWith('1', '1')
    })
  })

Здесь вы идете компонент:

          <Row>
            {projects && projects.map((project, i) => {
              return (

                <Col sm={4} key={i}>
                  <div className='mainBoxItem'>
                    <Link to={'/project/' + project.id} >
                      <div className='overflow-hidden'>
                        <img src={project.userImage} alt='Car' />
                      </div>
                      <h3>{project.carType} {project.carModel}</h3>
                    </Link>
                    <div className='flex'>
                      <p>{project.authorFirstName}</p>
                      <em>{moment(project.createdAt.toDate()).calendar()}</em>
                    </div>
                    <span className='car-price'>{project.carPrice} {project.Currency} / <em>Per Day</em></span>
                    <span className='review-number' onClick={() => this.addFeedback(project.id, project.feedback)}>+1 ({project.feedback})</span>
                  </div>
                </Col>
              )
            })}
          </Row>
        </Container>```


  [1]: https://i.stack.imgur.com/LLSxx.png

1 Ответ

0 голосов
/ 13 июня 2019

Я только что решил эту проблему

Здесь вы можете проверить мой тест

import Adapter from 'enzyme-adapter-react-16'
import { shallow, configure } from 'enzyme'

import { Dashboard } from './index'

configure({ adapter: new Adapter() });

describe('Dashboard', () => {
  const mockRemove = jest.fn()
  const props = { addFeedback: mockRemove, projects: [] }
  const dashboard = shallow(<Dashboard {...props} />)
  console.log(dashboard.debug())
  it('render Dashboard', () => {
    expect(dashboard).toMatchSnapshot()
  })

  describe('Add feedback on click', () => {
    beforeEach(() => {
      dashboard.find('.review-number').simulate('click')

      it('Call the `addFeedback` callback', () => {
        expect(mockRemove).toHaveBeenCalled()
      })
    })
  })
})

Вам необходимо отправить <Dashboard {...props} /> массив реквизитов в ваш компонент

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