Size: a a a

React — русскоговорящее сообщество

2021 March 23

А

Александр in React — русскоговорящее сообщество
Что лучше выбрать, чтобы начать покрывать проект юнит-тестами? jest+react-testing-library, jest+enzyme или mocha+enzyme?

Сложилось впечатление, что если проект не планирует становится мега-супер большим, то тогда скорость jsdom не будет играть особой роли, поэтому mocha будет лучшим выбором, но с другой стороны jsdom не позволяет только навигацию по приложению моделировать и css тестить, а оно вообще надо, если нет, то тогда jest? В такой непонятной ситуации хочется выбрать тупо то, что популярнее, в данном случае jest, если наступлю на грабли, то буду уже знать, в каких ситуациях это не лучший выбор.

По поводу react-testing-library и enzyme такое чувство, что enzyme по возможностям работы с dom не уступает, но при этом не вводит лишних ограничений на работу с состоянием компонентов.

Правильно рассуждаю или всё это глупость и надо смотреть на конкретные кейсы, которые есть в проекте и конкретные методы тестирования, которые предоставляет та или иная технология и общего какого-то ответа тут нет?
источник

🌠

🌠 in React — русскоговорящее сообщество
Кто-нибудь знает как моменту объяснить что вот это значение 2021-03-23 11:54 am это уже время в определенной таймзоне, например America/New_York ?


Если сетить вот так moment.tz('2021-03-23 11:54 am', "America/New_York") то он это воспринимает как время которое ему надо сконверитть в таймзону America/New_York
источник

AK

Almaz Kham in React — русскоговорящее сообщество
persona x grata
Возьми любой батон, оберни в HOC и добавь хендлер при нажатии скроллящий страницу книзу
Спасибо за совет, но нам в любом случае нужно писать свои компоненты, потому что важно чтобы бандл был минимальным. Так как наш проект будет загружаться через скрипт. Использовать готовые UI библиотеки не вариант в нашем проекте..
источник

OF

Oleg Frolov in React — русскоговорящее сообщество
Александр
Что лучше выбрать, чтобы начать покрывать проект юнит-тестами? jest+react-testing-library, jest+enzyme или mocha+enzyme?

Сложилось впечатление, что если проект не планирует становится мега-супер большим, то тогда скорость jsdom не будет играть особой роли, поэтому mocha будет лучшим выбором, но с другой стороны jsdom не позволяет только навигацию по приложению моделировать и css тестить, а оно вообще надо, если нет, то тогда jest? В такой непонятной ситуации хочется выбрать тупо то, что популярнее, в данном случае jest, если наступлю на грабли, то буду уже знать, в каких ситуациях это не лучший выбор.

По поводу react-testing-library и enzyme такое чувство, что enzyme по возможностям работы с dom не уступает, но при этом не вводит лишних ограничений на работу с состоянием компонентов.

Правильно рассуждаю или всё это глупость и надо смотреть на конкретные кейсы, которые есть в проекте и конкретные методы тестирования, которые предоставляет та или иная технология и общего какого-то ответа тут нет?
нужно смотреть по необходимости, какие кейсы нужно покрывать тестами. Если речь про реакт-компоненты, то react-testing-library нормальное решение. Если речь про тестирование функционала, то лучше e2e тесты (тот же cypress например).
источник

А

Александр in React — русскоговорящее сообщество
Oleg Frolov
нужно смотреть по необходимости, какие кейсы нужно покрывать тестами. Если речь про реакт-компоненты, то react-testing-library нормальное решение. Если речь про тестирование функционала, то лучше e2e тесты (тот же cypress например).
Речь про юнит-тесты компонентов, да. А в чем преимущество react-testing-library над enzyme? Пока кажется, что вторая либа может то же, что и первая, только ещё позволяет тестировать стейт, пропсы и т.п.
источник

OF

Oleg Frolov in React — русскоговорящее сообщество
Александр
Речь про юнит-тесты компонентов, да. А в чем преимущество react-testing-library над enzyme? Пока кажется, что вторая либа может то же, что и первая, только ещё позволяет тестировать стейт, пропсы и т.п.
RTL тоже умеет стейты и пропсы тестить (если чуток доку покурить). Нам в компании этого вполне достаточно
источник

А

Александр in React — русскоговорящее сообщество
Oleg Frolov
RTL тоже умеет стейты и пропсы тестить (если чуток доку покурить). Нам в компании этого вполне достаточно
Понял, спасибо за ответ!
источник

OF

Oleg Frolov in React — русскоговорящее сообщество
Александр
Понял, спасибо за ответ!
у RTL преимущество, что он из коробки умеет всё основное и очень мало нужно настраивать.. да и порог вхождения там намного ниже, имхо. А это бывает очень важно в компании с кучей мидлов и джунов, которые про тесты  едва слышали.
источник

RU

Roman Usherenko in React — русскоговорящее сообщество
Oleg Frolov
RTL тоже умеет стейты и пропсы тестить (если чуток доку покурить). Нам в компании этого вполне достаточно
никому не рассказывайте)))
источник

OF

Oleg Frolov in React — русскоговорящее сообщество
Roman Usherenko
никому не рассказывайте)))
)
источник

TP

Taras Postolyuk in React — русскоговорящее сообщество
Кто делал кастомный медиа квери хук? И может показать
источник

АД

Андрей Дрозд... in React — русскоговорящее сообщество
подскажите, имею примитивную регситрацию и вход, после входа в кабинет, диспатч прокидывает событие что пользовтаель авторизован и если в state flag true, скрыватся компоненты входа и регистрации и мы как бы залогинились но и остались на той же старнице login, как сделать переадресаю на другую страницу после входа?

явно понимаю что нужно после вызова диспатча дописать редирект, но как не понимаю

http://joxi.ru/v29bPdVHpJwvjA
источник

АД

Андрей Дрозд... in React — русскоговорящее сообщество
Андрей Дрозд
подскажите, имею примитивную регситрацию и вход, после входа в кабинет, диспатч прокидывает событие что пользовтаель авторизован и если в state flag true, скрыватся компоненты входа и регистрации и мы как бы залогинились но и остались на той же старнице login, как сделать переадресаю на другую страницу после входа?

явно понимаю что нужно после вызова диспатча дописать редирект, но как не понимаю

http://joxi.ru/v29bPdVHpJwvjA
сдеал через вызов функции, не работает

import {Redirect} from 'react-router-dom'

const Redir = () => {
   return <Redirect to="/firstCompain" />;
}

           <Button variant="info" type="submit" onClick={
               (e) => {

                   if (email.length > 0 &&
                       password.length > 3) {

                       e.preventDefault() // отключаем перезагрузку

                       // вызываем асинхронный ACTION
                       dispatch(login(email, password))

                       Redir()

                   } else return
               }
           }>
               Вход
           </Button>
источник

А

Александр in React — русскоговорящее сообщество
Андрей Дрозд
сдеал через вызов функции, не работает

import {Redirect} from 'react-router-dom'

const Redir = () => {
   return <Redirect to="/firstCompain" />;
}

           <Button variant="info" type="submit" onClick={
               (e) => {

                   if (email.length > 0 &&
                       password.length > 3) {

                       e.preventDefault() // отключаем перезагрузку

                       // вызываем асинхронный ACTION
                       dispatch(login(email, password))

                       Redir()

                   } else return
               }
           }>
               Вход
           </Button>
А как это должно работать? Redirect - это реакт-компонент, чтобы он работал он должен быть где-то в дереве "замонтирован".
источник

АД

Андрей Дрозд... in React — русскоговорящее сообщество
думаю что понял, а его можно вызывать внутри стрелочной функции?
источник

А

Александр in React — русскоговорящее сообщество
Андрей Дрозд
думаю что понял, а его можно вызывать внутри стрелочной функции?
Если стрелочная функция - это компонент, то можно, точно так же, как и любой другой компонент. Если нужен "императивный" редирект, то history.push в помощь.
источник

АД

Андрей Дрозд... in React — русскоговорящее сообщество
правильно ли понял ход мыслей, мне необходимо при нажати кнопки вызывать компонент и там уже все необходмые действия и после редирект

а сейчас же я пытаюсь вснуть редирект в событие onClick - что и не работает?
источник

А

Александр in React — русскоговорящее сообщество
Андрей Дрозд
правильно ли понял ход мыслей, мне необходимо при нажати кнопки вызывать компонент и там уже все необходмые действия и после редирект

а сейчас же я пытаюсь вснуть редирект в событие onClick - что и не работает?
Слабо представляю, что значит "вызывать компонент", компонент либо рендерится, либо нет, если его надо иногда рендерить, а иногда нет, то есть условный рендеринг, но то, что проблема в onClick - это да. При вызове Redir по сути ничего не происходит.
источник

~

~$solo in React — русскоговорящее сообщество
Андрей Дрозд
сдеал через вызов функции, не работает

import {Redirect} from 'react-router-dom'

const Redir = () => {
   return <Redirect to="/firstCompain" />;
}

           <Button variant="info" type="submit" onClick={
               (e) => {

                   if (email.length > 0 &&
                       password.length > 3) {

                       e.preventDefault() // отключаем перезагрузку

                       // вызываем асинхронный ACTION
                       dispatch(login(email, password))

                       Redir()

                   } else return
               }
           }>
               Вход
           </Button>
Вы как то по другому диспачите экшены
источник

АД

Андрей Дрозд... in React — русскоговорящее сообщество
~$solo
Вы как то по другому диспачите экшены
возможно, учусь на роликах, не критикуйте если что)
источник