библиотека реагирующих испытаний не очищается после пожара - PullRequest
3 голосов
/ 06 февраля 2020

Мы использовали ловушки React useReducer и useContext для обработки глобального хранилища в нашем приложении реагирования.

При запуске тестирования с использованием библиотеки реагирующего тестирования мы заметили, что как только наше состояние изменяется внутри одного теста, все последующие тесты теперь имеют это состояние.

Мы попытались выполнить очистку с помощью afterEach(cleanup), но это не сработало.

Не уверены, что происходит?

import React, { useContext, useReducer } from 'react'
import { render, fireEvent } from '@testing-library/react'
import '@testing-library/jest-dom/extend-expect'
import TodosList from './TodosList'
import reducer from '../../reducers/reducer'
import Store from '../../context'
import fixture from '../../tests/fixtures'

function Component() {
  const [state, dispatch] = useReducer(reducer, fixture)

  return (
    <Store.Provider value={{ state, dispatch }}>
      <TodosList />
    </Store.Provider>
  )
}

describe('todos', () => {
  it('removes a todo when button is pressed', () => {
    const { getByTestId, getAllByText } = render(<Component />)
    expect(getAllByText('Delete').length).toBe(3)
    window.confirm = jest.fn().mockImplementation(() => true)

    fireEvent.click(getByTestId('delete-1'))
    expect(window.confirm).toHaveBeenCalled()
    expect(getAllByText('Delete').length).toBe(2)
  })

  it('check that first test did not effect this test', () => {
    const { getByTestId, getAllByText } = render(<Component />)
    expect(getAllByText('Delete').length).toBe(3) //this fails and is 2
  })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...