Size: a a a

2020 December 03

А

Андрюша in React Kyiv
типізувати бек на мерні
источник

А

Андрюша in React Kyiv
а твої повідомлення
источник

SG

Stas G in React Kyiv
та конечно норм, почему нет
источник

А

Андрюша in React Kyiv
наче тільки проснувся
источник

А

Андрюша in React Kyiv
і хуйню тут пишеш
источник

А

Андрюша in React Kyiv
Stas G
та конечно норм, почему нет
дякую
источник

ИР

Илья Раецкий... in React Kyiv
Шима
при тому) чувак хоче готове рішення з типізацією
Тайпинги под любой фреймворк есть
источник

ИР

Илья Раецкий... in React Kyiv
Кто может подсказать?
Первый тест проходит но промис не резолвится и падает второй

Компонент
 const [images, setImages] = useState(undefined);

 useEffect(() => {
   const fetchImages = async (type) => {
     const images = await fetch(
       `https://film-gallery-api.herokuapp.com/api/images?prefix=${type}`
     );
     setImages(images);
   };
   fetchImages(type);
 }, [type]);

 return (
   <Fragment>
     {!images && <Spinner />}
     {images && isTabletOrMobile && (
       <div className="gallery-mobile">
         {images.map((image, index) => (
           <img
             test-id={image.url}
             key={index}
             alt={`Carousel of type: ${type}`}
             src={image.url}
           />
         ))}
       </div>
     )}
     {images && isDesktopOrLaptop && (
       <Carousel offset={0} itemWidth={1000}>
         {images.map((image, index) => (
           <img
             test-id={image.url}
             key={index}
             alt={`Carousel of type: ${type}`}
             src={image.url}
           />
         ))}
       </Carousel>
     )}
   </Fragment>
 );

Тест:
describe('Test images loading to the Gallery component', () => {
 it('Renders a loader', () => {
   const { getByText } = render(<Gallery />);
   getByText('Loading...');
 });

 it('Renders images', async () => {
   await waitFor(() => render(<Gallery type="35mm" />));
   await waitFor(() => screen.getByTestId(images[0].url));
 });
});
источник

SS

Serhey Shmyg in React Kyiv
Навіщо рендер тесту в вейтфор завертати?
источник

ИР

Илья Раецкий... in React Kyiv
Методом тыка пробовал
Заворачивал в act - тоже самое
источник

SS

Serhey Shmyg in React Kyiv
Робитрендер а тоді шукай елементи за допомогою файнд
источник

ИР

Илья Раецкий... in React Kyiv
act же по идее должен дожидаться когда перерендер произойдёт
источник

SS

Serhey Shmyg in React Kyiv
І почитай різницю між файнд гет і квері
источник

SS

Serhey Shmyg in React Kyiv
А де взагалі експекти в тестах?
источник

ИР

Илья Раецкий... in React Kyiv
Cекунду
источник

ИР

Илья Раецкий... in React Kyiv
const images = [{ url: 'https://1.com' }];

global.fetch = jest.fn(() =>
 Promise.resolve({
   json: () => Promise.resolve(images),
 })
);

describe('Test images loading to the Gallery component', () => {
 it('Renders a loader', () => {
   const { getByText } = render(<Gallery />);
   getByText('Loading...');
 });

 it('Renders images', async () => {
   await render(<Gallery type="35mm" />);
   expect(await screen.findByTestId(images[0].url)).toBeInTheDocument();
 });
});
источник

ИР

Илья Раецкий... in React Kyiv
Все равно валится
источник

SS

Serhey Shmyg in React Kyiv
Мокати фетч - така собі ідея
источник

ИР

Илья Раецкий... in React Kyiv
Там в компоненте фетч на маунте, не знаю как иначе
источник

SS

Serhey Shmyg in React Kyiv
Илья Раецкий
Там в компоненте фетч на маунте, не знаю как иначе
источник