
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

Vladimir
16.12.2016
20:28:50

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

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

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

Vladimir
16.12.2016
20:30:42

Daniel
16.12.2016
20:30:51

Vladimir
16.12.2016
20:32:21

Сергей
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

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
суть твоей функции в том, что она сама по себе почти ничего не делает

Aleh
16.12.2016
21:10:58

Vladimir
16.12.2016
21:11:18
вот покрыл один пример работы такой функции
и почти норм
потом нужно отдельно покрыть тестами настоящие finderFn и transformFn
эльм с тобой несогласится

Aleh
16.12.2016
21:12:07

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

Дмитрий
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