Size: a a a

2020 November 16

AN

Anton Nemtsev in Frontend UA
Забыл await
Теперь падает. На true тоже.
Бесконечно false
источник

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
Мне надо как то реагировать на то что картинка загрузилась или сломалась.
И то и другое будет требовать onLoad или onError
источник

AN

Anton Nemtsev in Frontend UA
попробовал такое … но что то нет результата кажется
   act(() => {
     fireEvent(
       root,
       new UIEvent("load", { bubbles: false, cancelable: false })
     );
   });
источник

DZ

Dmitry Zherebko in Frontend UA
так а у тебя onLoad вызывается вообще в тесте?
источник

DZ

Dmitry Zherebko in Frontend UA
поставь в конце
await new Promise(()={})
источник

DZ

Dmitry Zherebko in Frontend UA
может баг в жс доме, и ещё чекни что completed поменялся
источник

SS

Serhey Shmyg in Frontend UA
Anton Nemtsev
попробовал такое … но что то нет результата кажется
   act(() => {
     fireEvent(
       root,
       new UIEvent("load", { bubbles: false, cancelable: false })
     );
   });
Чисто для тесту чи працює, прокинь колбек на онЛоад ивент, і потести чи викликається він чи ні
источник

SS

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

AN

Anton Nemtsev in Frontend UA
Dmitry Zherebko
так а у тебя onLoad вызывается вообще в тесте?
ноуп
источник

AN

Anton Nemtsev in Frontend UA
Serhey Shmyg
Чисто для тесту чи працює, прокинь колбек на онЛоад ивент, і потести чи викликається він чи ні
ноуп, не вызывается
источник

DZ

Dmitry Zherebko in Frontend UA
ну тогда это трабл с jsdom
источник

AN

Anton Nemtsev in Frontend UA
Точнее так, если я его фаерю руками — вызывается.
test("lala", () => {
   const onLoad = jest.fn();
   const { root } = renderComponent({
     src: img,
     onLoad,
   });

   act(() => {
     fireEvent(
       root,
       new UIEvent("load", { bubbles: false, cancelable: false })
     );
   });

   console.log(onLoad.mock);
 });


Тут будет 1 вызов в моке
источник

AN

Anton Nemtsev in Frontend UA
но он не меняет состояние компонента
источник

AN

Anton Nemtsev in Frontend UA
а без ручного вызова onLoad не файрится
источник

AN

Anton Nemtsev in Frontend UA
хм … подождите, если не мокать, то должен файрится получается
источник

AN

Anton Nemtsev in Frontend UA
но я не вижу результата
источник