
Fey
27.04.2018
16:48:52
только вот у wallaby внутри phantomjs, а последнего автор похоронил месяц назад
а ещё этот phantomjs после себя зомбаков оставляет, которые кипятят железку

Артем
27.04.2018
16:59:08
да хаунд тоже более-менее скрещивается только с фантомжс
блин, ненавижу всю эту жс поебень

Google

Артем
27.04.2018
16:59:24
локально тест проходит
а на circle ci падает
execute_script("window.confirm = function(msg){return true;};")
post_delete_link |> click()
таким говном заниматься

Fey
27.04.2018
17:00:25
да, эт тяжко. там можно зассшиться, снять скриншот

Артем
27.04.2018
17:01:34
да там скрин не поможет особо. это жс попап
стандартный
и хаунд ну или точнее фантом там не может кликнуть на него

Fey
27.04.2018
17:03:41
https://hexdocs.pm/hound/Hound.Helpers.Dialog.html#accept_dialog/0 ?
под капотом оно вот так https://github.com/HashNuke/hound/blob/master/lib/hound/helpers/dialog.ex#L38

Артем
27.04.2018
17:07:40
да, я видел всё это
https://github.com/HashNuke/hound/blob/6bdf66f2a2d65b6ec554bef8c25c6794156be877/lib/hound/internal_helpers.ex

Google

Артем
27.04.2018
17:07:54
только вот оно кажись с фантомом не оч
наверно надо попробовать другой драйвер, тлен всё это
я ваще фронтенд что-то не очень люблю
ну и он меня

Vitaly
27.04.2018
17:23:51
фантом давно умер уже, пробуйте мигрировать на chrome headless
правда это легко сказать и непросто сделать - запросто может появиться больше проблем чем было изначально
так что
:D

M
27.04.2018
17:38:27

Артем
27.04.2018
17:38:28
ваще валяба тащит
test "post deleted" do
post1 =
insert!(
:post,
deleted_at: nil
)
navigate_to(index_page())
post_delete_link = {:css, ".card .card-actions .btn[data-method='delete']"}
# скрипт для подтверждения диалога об удалении поста
execute_script("window.confirm = function(msg){return true;};")
post_delete_link |> click()
post_deleted = Posts.get_post!(post1.id)
assert post_deleted.deleted_at != nil
end
хаунд
test "post deleted" do
post1 =
insert!(
:post,
deleted_at: nil
)
{:ok, user1} = Wallaby.start_session()
user1
|> visit(index_page())
|> accept_dialogs()
|> find(css(".card .card-actions .btn[data-method='delete']"))
|> Element.click()
post_deleted = Posts.get_post!(post1.id)
assert post_deleted.deleted_at != nil
end
валабэ

M
27.04.2018
17:44:27
что ты такое)))
а что, выглядит ужасно?) по мне неплохое решение ui управлять из бэкэнда, если к js совсем прям душа не лежит ?

Артем
27.04.2018
17:44:36
wallaby
сработал на circleci, а хаунд провалился
Assertion with != failed, both sides are exactly equal
code: assert post_deleted.deleted_at() != nil
left: nil
такие дела

Fey
27.04.2018
17:45:01
интересненько

Google

Артем
27.04.2018
17:45:20
ну я читал тред у них в ишьюсах, они это имплементировали
только вот у них всё кроме фантома экспериментально
чё делать - неясно, то ли на хаунде менять драйвер, то ли на валлаби лезть

Fey
27.04.2018
17:48:33
а фронт тоже на фениксе или спа, которое по апи разговаривает?
во втором случае я б не стал это тестить из эликсира

Артем
27.04.2018
17:49:17
на фениксе в амбрелле
чё делать посоны, нужен совет

Fey
27.04.2018
18:18:04
если тестов много и влом переписывать, то менять драйвер

Vitaly
27.04.2018
19:43:03
но драйвер нужно менять рано или поздно

Артем
27.04.2018
20:24:42
ну вот я так понимаю что если фантом откинулся, то лучше выбрать-таки хаунд где поддержка других не заявлена как экспериментальная
только вот что-то хедлесс не взлетел с ходу

Dmitry
28.04.2018
04:33:13

M
28.04.2018
04:42:06

Dmitry
28.04.2018
05:42:10

Egor
28.04.2018
09:33:53
@Virviil а агала нынче юзабельна?

Dmitry
28.04.2018
09:36:46
Конечно

Egor
28.04.2018
09:37:48
Гайдов на хексдоках чет нет, так не хочется вдумчиво разбираться(

Dmitry
28.04.2018
09:38:14
Для телеги есть пример

Google

Dmitry
28.04.2018
09:38:17
Туториал

Egor
28.04.2018
09:40:02
А, точно, не увидел
Благодарю

Mike
30.04.2018
08:01:16
Всем привет!
Есть вопрос. У меня есть список.
users = [%User{name: "Joe", likes: 2}, %User{name: "James", likes: 1}, ...]
Внутри этого списка я хочу найти элемент по name, и увеличить у него likes, вернуть новый список. Есть ли какой-то способ, кроме как удалить найденный элемент, а затем добавить в список новый, модифицированный?

Артем
30.04.2018
08:16:51
А зачем другой?

Mike
30.04.2018
08:22:34
ну, может, есть что-то типа Kernel#update_in только для такого случая, а я о нем не знаю

Dmitry
30.04.2018
08:23:07
А как удаляешь?
Можно мапать коллекцию с Enum.map
И ничего удалять не придётся

Evgeny
30.04.2018
08:26:03
ага, Enum.map - верное решение

Vitaly
30.04.2018
08:27:34
а нельзя хранить юзеров в Map с ключами по name?

Артем
30.04.2018
08:28:05
Enum.map имхо правильнее когда каждый элемент преобразовываешь а не один

Mike
30.04.2018
08:28:55
ну да ,согласен. а то получается уже костыль

Dmitry
30.04.2018
08:29:41

Vitaly
30.04.2018
08:30:38
мб
users = users — old_user ++ new_user ?

Dmitry
30.04.2018
08:31:32

Vitaly
30.04.2018
08:34:15
впрочем, предварительно нужно будет найти этого юзера
так что ничем не лучше map, имхо

Dmitry
30.04.2018
08:37:10
А сколько пользователей в list-е будет?

Google

Dmitry
30.04.2018
08:37:33
Планируется быть

Mike
30.04.2018
08:37:41
допустим может быть очень много: 1000 - 10 000

Dmitry
30.04.2018
08:38:38
Map более читаемый как мне кажется.
В данном случае вопрос наверное в том, почему обрабатывается коллекция, а не пуляется запрос в бд - увеличить кол-во лайков этого юзера

Mike
30.04.2018
08:39:36
я не использую ecto. у меня просто elixir-приложение без бд, все в памяти должно храниться.

Dmitry
30.04.2018
08:43:21
Как вариант в ets хранить, но должен же быть уникальный идентификатор для работы с записью

Anatoliy Kovalchuk
30.04.2018
08:44:54
я бы тоже в ets хранил

Vitaly
30.04.2018
08:45:21
тогда list - неудачная коллекция