[vue-test-utils]: wrapper.setChecked () должно быть передано логическое значение

Используя Vue, у меня есть несколько радиовходов:

  <label>
    <input
      v-model = "myProperty"
      v-bind:value = "true"
      name = "myProperty"
      type = "radio"
    > True
  </label>

  <label>
    <input
      v-model = "myProperty"
      v-validate = "input.rules ? input.rules : ''"
      v-bind:value = "false"
      name = "myProperty"
      type = "radio"
    > False
  </label>

Я тестирую их с помощью vue-test-utils и jest, где выбираю и присваиваю значение своему полю:

let myProperty = wrapper.find('[name = "myProperty"]')
myProperty.setChecked(false)

Согласно документация, похоже, так оно и должно работать. Но я получаю такую ​​ошибку:

[vue-test-utils]: wrapper.setChecked() must be passed a boolean

Однако это работает, когда я устанавливаю значение true вместо false. В качестве эксперимента я попытался установить значение как строку 'false':

myProperty.setChecked('false')

Потом я получил эту ошибку:

[vue-test-utils]: wrapper.setChecked() must be passed a boolean

Итак, как мне выбрать желаемый радиовход в vue-test-utils, если значение равно false? А что, если у моих радиовходов есть строки значений?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
1 967
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Необходимо вызвать setChecked на другом радиовходе в группе. Это снимет отметку со всех других переключателей в группе, так как только одна может быть отмечена за раз:

wrapper.find('[name = "other property"]').setChecked(true)

В Vue Test Utils мы запрещаем устанавливать для переключателя checked значение false, поскольку это позволяет вам переводить радиогруппу в состояние, при котором ни одна из них не проверяется, несмотря на то, что это невозможно для пользователя.

Возможно, стоит пересмотреть это дизайнерское решение. Если у вас есть вариант использования, создайте запрос функции в репозитории Vue Test Utils на GitHub.

Другие вопросы по теме