Size: a a a

2021 February 17

AN

Anton Nemtsev in Frontend UA

   act(() => {
     userEvent.selectOptions(select, 'green');
   });

вот так не работает.
Это оно или я переврал?
источник

SS

Serhey Shmyg in Frontend UA
схоже на те
источник

AN

Anton Nemtsev in Frontend UA
Добавил await

   await act(async () => {
     await userEvent.selectOptions(select, 'green');
   });

результат тот же
источник

SS

Serhey Shmyg in Frontend UA
act же ніби хендлить аснихронщину ні?
источник

AN

Anton Nemtsev in Frontend UA
ну я вот тоже так думал.
потому и не пихал эвейт
источник

AN

Anton Nemtsev in Frontend UA
но не работает
источник

SS

Serhey Shmyg in Frontend UA
а навіщо  act юзаешь тоді?
источник

SS

Serhey Shmyg in Frontend UA
зручніше ж з asycn await
источник

DB

Dima Bildin in Frontend UA
А точно select рендерится правильно, как ожидается от него с теми options что переданы, нет нигде опечатки из-за которой там пусто?
источник

AN

Anton Nemtsev in Frontend UA
Кажется я нашел корень зол.
У меня есть возможность устанавливать default state для селекта
Я сделал это как


   <select
    …
     value={value || filterConstants.CLEAR_VALUE}
     …
   >


Пока эта строка есть — userEvent.selectOptions(select, 'green'); не работает.
Убрал — заработало.
Но событие onChange всё равно не выбросило 🙁
+ мне надо как то устанавливать стартовое значение 🙁
источник

AN

Anton Nemtsev in Frontend UA
Dima Bildin
А точно select рендерится правильно, как ожидается от него с теми options что переданы, нет нигде опечатки из-за которой там пусто?
Там в gist есть html который рендерится в generated.html
Выглядит вменяемо
источник

DB

Dima Bildin in Frontend UA
А такая версия была)
источник

SS

Serhey Shmyg in Frontend UA
Anton Nemtsev
Кажется я нашел корень зол.
У меня есть возможность устанавливать default state для селекта
Я сделал это как


   <select
    …
     value={value || filterConstants.CLEAR_VALUE}
     …
   >


Пока эта строка есть — userEvent.selectOptions(select, 'green'); не работает.
Убрал — заработало.
Но событие onChange всё равно не выбросило 🙁
+ мне надо как то устанавливать стартовое значение 🙁
В тебе повинен бути або контрольований або не контрольований селект. Якщо він контрольований, тоді ти сам повинен обирати активний опшн
источник

SS

Serhey Shmyg in Frontend UA
Тобто якщо передаєш он чендж, то селектед для опшн ставиш руками
источник

AN

Anton Nemtsev in Frontend UA
Да, так и происходит.
Но в тесте само событие не выбрасывается на данный момент.
источник

SS

Serhey Shmyg in Frontend UA
Не працює тому що в селект потрібно велью руками передати
источник

SS

Serhey Shmyg in Frontend UA
він в тебе контрольований
источник

AN

Anton Nemtsev in Frontend UA
или я должен руками выбросить в тесте onChange с помощью fireEvent?
источник

AN

Anton Nemtsev in Frontend UA
@sshmyg
Так в onChange, по идее, должен вызваться ф-я, которая изменит состояние контекста и оно потом изменит defaultValue на cелекте (раньше просто value)
источник

SS

Serhey Shmyg in Frontend UA
В тебе і он чендж і велю це зовнішні пропси
источник