Используя 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? А что, если у моих радиовходов есть строки значений?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Необходимо вызвать setChecked на другом радиовходе в группе. Это снимет отметку со всех других переключателей в группе, так как только одна может быть отмечена за раз:
wrapper.find('[name = "other property"]').setChecked(true)
В Vue Test Utils мы запрещаем устанавливать для переключателя checked значение false, поскольку это позволяет вам переводить радиогруппу в состояние, при котором ни одна из них не проверяется, несмотря на то, что это невозможно для пользователя.
Возможно, стоит пересмотреть это дизайнерское решение. Если у вас есть вариант использования, создайте запрос функции в репозитории Vue Test Utils на GitHub.