Имитация изменений не работает для элементов выбора formik - PullRequest
3 голосов
/ 17 мая 2019

Я пытаюсь протестировать некоторые из элементов выбора formik, и имитация изменений не работает.

, тогда как то же изменение имитации работает отлично для элементов ввода formik.

Компонент:

 <Field
                      type="text"
                      name={'clientsData.language1_id'}
                      className={this.props.classes.textField}
                      label="Primary Language"
                      select
                      margin="normal"
                      variant="outlined"
                      component={TextField}
                      InputLabelProps={{
                        shrink: true
                      }}>
                      }}>
                      {this.props.languages.map(val => (
                        <MenuItem key={val.id} value={val.id}>
                          {val.value}
                        </MenuItem>
                      ))}
                    </Field>

Mount Wrapper:

wrapper = mount(
      <Router history={hist}>
        <ClientsContacts
          clientsData={clientsData}
          languages={languages}
          gender={gender}
          race={race}
          genders_identified={genderIdentified}
          actions={{ getDictionaryApiCall: mockGetDictionaryApiCall, getListApiCall: mockGetListApiCall }}
        />
      </Router>
    )

Имитация изменений и некоторые журналы консоли для лучшего понимания:

console.log(
      wrapper
        // .find('Select')
        .find('input')
        .at(6)
        .debug()
    )

    wrapper
      .find('input')
      .at(6)
      .simulate('change', { target: { value: '122344556644', name: 'clientsData.language1_id' } })

    console.log(
      wrapper
        .find('input')
        .at(6)
        .props()
    )

Снимок экрана console.log:

Screen Shot 2019-05-29 at 9 59 59 AM

Приведенный выше снимок экрана журнала консоли показывает, что значение не изменяется даже после изменения симуляции.

1 Ответ

0 голосов
/ 31 мая 2019

Мне удалось это исправить, используя напрямую props.onChange

wrapper
      .find('SelectInput')
      .at(0)
      .props()
      .onChange({ target: { id: 1, value: 'American Sign Language', name: 'clientsData.language1_id' } })
    wrapper.update()
...