@JSlang

Страница 490 из 2237
Aleh
16.12.2016
20:16:45
проблема потом менять

конечно в жсе с этим легко, к тому моменту как надо код менять, уже вышел новый фреймворк, поэтому можно все с нуля переписать

Dreamerinnoise
16.12.2016
20:17:31
Точно

Но есть же флоу

Google
Aleh
16.12.2016
20:18:28
флоу?

Dreamerinnoise
16.12.2016
20:19:00
Флоу

Eduard
16.12.2016
20:19:03
гуглить?

Aleh
16.12.2016
20:19:27
фейсбучный или что за флоу?)

Dreamerinnoise
16.12.2016
20:20:01
флоу?
Ну да. Мол, такой код легче рефакторить

Фейсбучный

Aleh
16.12.2016
20:20:49
я просто не понял, причем тут флоу(а чейто ты про тс забыл:) )

Dreamerinnoise
16.12.2016
20:23:57
проблема потом менять
Я про это же. Отрефакторить код на тс легче.

Aleh
16.12.2016
20:25:11
нууу

не все

Vladimir
16.12.2016
20:26:29
а есть альтернатива?
Писать код который не надо мокать

Aleh
16.12.2016
20:26:43
Писать код который не надо мокать
например, а то я чет туплю

Daniel
16.12.2016
20:27:02
подскажите, как селектором выбрать только элементы у которых display отличен от none? Есть тег li, в нем несколько спан. часть спан скрывается display:none. мне нужно выбрать первый видимый элемент. или просто, видимый. смотрел, вроде нет псевдоклассов нормальных

Google
Daniel
16.12.2016
20:27:19
*селектор нужен для CSS

Aleh
16.12.2016
20:27:30
Писать код который не надо мокать
в смысле везде аналог redux-saga юзать?

Aleh
16.12.2016
20:29:01
к тестам даблам относятся также фейки и dummy

Vladimir
16.12.2016
20:29:37
Только если ещё не ввели :visible псевдо селектор

в смысле везде аналог redux-saga юзать?
Причём тут какой-то один пример

Aleh
16.12.2016
20:30:40
я хочу понять что ты предлагаешь делать с кодом и тестами

Vladimir
16.12.2016
20:30:42
например, а то я чет туплю
Например функция для работы с подписками на сокеты

Daniel
16.12.2016
20:30:51
Только если ещё не ввели :visible псевдо селектор
спасибо. так и знал ( писал как в последнюю инстанцию )

Сергей
16.12.2016
20:33:13
Флоу
мне кажется лучше сразу называть его флоутайп ибо не всегда понятно

Vladimir
16.12.2016
20:42:16
который ты не видишь как написать без сторонних моков

Aleh
16.12.2016
20:48:09
давай твой пример
от балды https://gist.github.com/mkusher/a92922bae391fec466d01769a5e03e51

Vladimir
16.12.2016
20:49:05
somePrivateTransform надо пробрасывать в subjectToTest1

Aleh
16.12.2016
20:49:34
он же private

Vladimir
16.12.2016
20:49:59
это то, что делает код не тестируемым

Aleh
16.12.2016
20:51:06
окей, пусть он будет публичным

Vladimir
16.12.2016
20:53:12
это конечно крутая функция const subjectToTest1 = finder => transform => async (someSearchQuery) => transform(await finder(someSearchQuery))

Google
Aleh
16.12.2016
20:53:37
да, это детали

вопрос не в этом

Vladimir
16.12.2016
20:53:58
я пытаюсь понять, что оно делает

можешь в двух словах описать что там происходит?

Aleh
16.12.2016
20:55:36
делаем асинхронный поиск по заданному критерию и возвращаем преобразованный ответ

return finder(someSearchQuery).then(transform);

Каїн
16.12.2016
20:58:41
Прнтго всера парни

Vladimir
16.12.2016
20:58:53
можно записать так? const subjectToTest1 = async curry( (finderFn, transformFn, someSearchQuery) => transformFn(await finderFn(someSearchQuery)) )

Aleh
16.12.2016
20:59:17
async не там, думаю

вроде оно же

Vladimir
16.12.2016
21:00:47
const subjectToTest1 = curry( (finderFn, transformFn, someSearchQuery) => finderFn(someSearchQuery).then(transformFn) )

вот теперь можно тестить

Aleh
16.12.2016
21:01:08
да

будто что-то изменилось ))))

Vladimir
16.12.2016
21:01:28
const fn = curry( (finderFn, transformFn, query) => finderFn(query).then(transformFn) )

теперь оно понятно

Vitaly
16.12.2016
21:01:54
Aleh
16.12.2016
21:01:59
как скажешь)

Vladimir
16.12.2016
21:02:03
и тестируемо

Каїн
16.12.2016
21:02:24
Как вы понимаете это фп

Google
Aleh
16.12.2016
21:02:28
лол, а почему моя запись не тестируема?)

Каїн
16.12.2016
21:02:35
Курри

Aleh
16.12.2016
21:02:40
кроме того, что в ней нет зависимости от curry?

ну ладно, пускай так, я на все согласен)

Admin
ERROR: S client not available

Vladimir
16.12.2016
21:06:43
кроме того, что в ней нет зависимости от curry?
карри, на самом деле просто у меня автоматом поставилось

Aleh
16.12.2016
21:06:50
окей, я не против

Vladimir
16.12.2016
21:07:02
// index.js const fn = (finderFn, transformFn, query) => finderFn(query).then(transformFn); export default fn; // test.js import test from 'ava'; import fn from './index'; const double = x => x * 2; const finder = x => Promise.resolve(x); test('fn', async t => { const actual = await fn(finder, double, 1); const expected = 2; const expected(actual, expected); });

окей, я не против
вот и зачем тут моки нужны?

Dreamerinnoise
16.12.2016
21:09:22
Был бы у тебя петух написан в фп стиле, то уже бы грёб бабло

Aleh
16.12.2016
21:09:55
вот и зачем тут моки нужны?
тут ты юзаешь фейки, ок они тоже тест даблы

Dreamerinnoise
16.12.2016
21:09:57
Грёб бы больше!

Vladimir
16.12.2016
21:10:18
суть твоей функции в том, что она сама по себе почти ничего не делает

Vladimir
16.12.2016
21:11:18
вот покрыл один пример работы такой функции

и почти норм

потом нужно отдельно покрыть тестами настоящие finderFn и transformFn

эльм с тобой несогласится

Aleh
16.12.2016
21:12:07
потом нужно отдельно покрыть тестами настоящие finderFn и transformFn
это само собой, мне интересен только мой маленький кусок

Google
Aleh
16.12.2016
21:12:13
и purescript

Vladimir
16.12.2016
21:12:25
это само собой, мне интересен только мой маленький кусок
немного больше примеров добавь и будет норм

Aleh
16.12.2016
21:12:31
и почти норм
ну, хз. Из теста слабо понятен интерфейс и контракт функции

Дмитрий
16.12.2016
21:12:42
cyclejs

Vladimir
16.12.2016
21:12:50
больше только property based testing поможет

Aleh
16.12.2016
21:13:01
больше только property based testing поможет
он вообще не из этой лиги

Дмитрий
16.12.2016
21:13:26
Ну ты почитай про него. У него нормальный такой замысел

Vladimir
16.12.2016
21:13:30
ну, хз. Из теста слабо понятен интерфейс и контракт функции
что ты вкладываешь в «интерфейс» и «контракт»?

это функция общая настолько насколько она может быть

Дмитрий
16.12.2016
21:14:02
А вп по твоему это линейность и строгая синхронность?)

Каїн
16.12.2016
21:14:20
Это синхронность

Aleh
16.12.2016
21:14:30
что ты вкладываешь в «интерфейс» и «контракт»?
интерфейс - как функция может быть вызвана, контракт - как она себя поведет

Дмитрий
16.12.2016
21:14:40
Промисы — это кривая монада Future

Aleh
16.12.2016
21:14:49

Страница 490 из 2237