Size: a a a

2020 June 08

DS

Dmitriy Shuleshov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
если промис на который нет ссылки оказывается захвачен хуком то это баг реакта и v8 одновременно, вероятность чего я расцениваю как минимальную)
Как то можно проверить?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
так что желательно посмотреть на норм репродьюс, не в лагсандбоксе, не с тремя промисами, движок на такие тычки даже не будет расчехлять gc
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
ну а промисы конечно будут висеть в памяти если вызвать 100500 запросов подряд
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Dmitriy Shuleshov
Как то можно проверить?
performance.memory до и после
источник

TG

Timofey Goncharov in ☄️ effector
есть 4 эффекта. как лучше всего получить из них pending.
useStore(aFx.done);
useStore(bFx.done);
useStore(cFx.done);
useStore(dFx.done);
не очень получается. причем мне нужен boolean true, если хотя бы один из них true.
источник

P

Paruyr🛸🪐🌏 in ☄️ effector
combine([], values => values.reduce((z, x) => z || x, false)
источник

P

Paruyr🛸🪐🌏 in ☄️ effector
массив pending-ов передавай первым аргументом в комбайн
источник

TG

Timofey Goncharov in ☄️ effector
вот да, такое на ум пришло сейчас тоже. только еще лучше)
источник

P

Paruyr🛸🪐🌏 in ☄️ effector
fn в sample может вернуть undefined?
источник

R

Ruslan 🌀 in ☄️ effector
Timofey Goncharov
вот да, такое на ум пришло сейчас тоже. только еще лучше)
(states) => states.some(Boolean)?
источник

TG

Timofey Goncharov in ☄️ effector
Ruslan 🌀
(states) => states.some(Boolean)?
сделал через .includes(true)
источник

P

Paruyr🛸🪐🌏 in ☄️ effector
.map(x => Boolean.prototype.toString.apply(x)).indexOf(‘true’) > -1
источник

P

Paruyr🛸🪐🌏 in ☄️ effector
Это было у меня как-то раз
источник

TG

Timofey Goncharov in ☄️ effector
источник

R

Rafael 🦠 in ☄️ effector
createStore<🦉> ⁣
@Fl0pZz ты кстати можешь добавить кастомный матчер в жест, чтобы прям по красоте значения сторов доставать, например.


https://t.me/sergeysova/104

(На самом деле, это больше исследовательский подход)
Telegram
Сова пишет…
Написал значит я тесты для patronum/delay. Хочу убедиться, что delay действительно корректный, мол на правильное время откладывает. Прогнал тесты на своем маке и запушил релиз.
И тут всё сломалось. https://github.com/sergeysova/patronum/runs/619547616?check_suite_focus=true

Тесты на ubuntu кричат:
expect(start.diff() > 100).toBe(true)
Время delay было меньше 100 миллисекунд.

Думал, я думал. Логгировал, логгировал, да не перевылоггировал.
Оказалось, что в некоторых случаях setTimeout срабатывает раньше указанного срока, хотя я всегда предполагал, что позже.

Как же тогда писать тесты красиво и удобно. Да так, чтобы время было корректным? Всего лишь нужно ввести так называемую проверку с порогом:
if (received < expected + threshold && received > expected - threshold)

И благо, jest позволяет добавить кастомные матчеры, чтобы такие проверки не дублировать в каждом тесте. Результат выглядит так:

expect(start.diff()).toBeCloseWithThreshold(100, 30)
— Жест, будь так добр, проверь, что полученное значение, находится…
да у меня пока нет ничего с таймерами

но буду знать, сябки 👍
источник

c⁣

createStore<🦉>... in ☄️ effector
Rafael 🦠
да у меня пока нет ничего с таймерами

но буду знать, сябки 👍
Не. Там Вообще любые матчеры можно сделать
Типа

expect($logs).toMatchState([])
источник

R

Rafael 🦠 in ☄️ effector
createStore<🦉> ⁣
Не. Там Вообще любые матчеры можно сделать
Типа

expect($logs).toMatchState([])
хмм 🤔
ну да, наверное я даже сделаю что-то, но только тогда, когда у меня будет побольше тестов и я смогу определелить потребности
источник

R

Rafael 🦠 in ☄️ effector
сейчас то у меня всего 3 теста
источник

c⁣

createStore<🦉>... in ☄️ effector
Rafael 🦠
хмм 🤔
ну да, наверное я даже сделаю что-то, но только тогда, когда у меня будет побольше тестов и я смогу определелить потребности
+++
источник

R

Ruslan 🌀 in ☄️ effector
createStore<🦉> ⁣
Не. Там Вообще любые матчеры можно сделать
Типа

expect($logs).toMatchState([])
expect($logs).tooMuchState() 😄
источник