簡體   English   中英

在 redux-form 上使用 react-testing-library 時,表單輸入不會改變

[英]Form input not changing when using react-testing-library on redux-form

我正在嘗試測試當用戶將文本inputbuttondisabled變為enabledinput中時。 它在瀏覽器中顯然有效,但我無法通過測試。 我正在使用redux-formreact-testing-library 但是,如果我使用本機input而不是redux-formField ,則測試通過。

我用最少的代碼創建了一個repo來復制問題。

由於您沒有在測試中使用 redux-form 中的 reducer,因此它的 props 不會正確傳遞給您的組件。 最好提供一個類似於您的應用程序實際使用的減速器。 以下代碼有效。

import React from "react"
import { Provider } from "react-redux"
import { combineReducers, createStore } from "redux"
import { reducer as reduxFormReducer } from "redux-form"
import { fireEvent, render } from "@testing-library/react"
import SimpleForm from "./SimpleForm"

// Create a reducer that includes the form reducer from redux-form
const reducer = combineReducers({
  form: reduxFormReducer,
})

const store = createStore(reducer)

it("test that button is not disabled when input is entered", () => {
  const { getByLabelText, getByText } = render(
    <Provider store={store}>
      <SimpleForm />
    </Provider>,
  )

  const input = getByLabelText("Name")
  const submit = getByText("Submit")

  fireEvent.change(input, { target: { value: "test input" } })

  expect(submit).not.toBeDisabled()
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM