Size: a a a

2020 May 05

AB

Alex Bubnov in pro.elixir
Михаил Лёсин
но я не пойму как его подменить на возврат статики в этом случае
Да просто на фронтовом nginx разрули через try_files
источник

AB

Alex Bubnov in pro.elixir
Михаил Лёсин
по сути надо чтобы рутер в проде все неразрешенные запросы направлял на index.html который должен сервиться статиком...
Я же правильно понимаю, что это речь про index.html от стандартного spa с history-based роутингом и бэк, предоставляющий ему апи?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Alexander Uljev
Есть чат, у него есть комнаты, у комнат адаптеры
И что, для каждой комнаты отдельное приложение? И у разных комнат не может быть одинакового адаптера?
источник

AU

Alexander Uljev in pro.elixir
Źmićer Rubinštejn
И что, для каждой комнаты отдельное приложение? И у разных комнат не может быть одинакового адаптера?
Приложение одно, адаптеров много
источник

AU

Alexander Uljev in pro.elixir
Помимо комнат есть аутентификация, роутер, загрузчик конфигураций
источник

AU

Alexander Uljev in pro.elixir
Сервер, клиент
источник

AU

Alexander Uljev in pro.elixir
Все в одном репозитории
источник
2020 May 06

T

Tharin in pro.elixir
Кто-нибудь использует Mox? Как вы тестируете вещи, которые надо замокать, хоть они и вызываются в другом процессе? Посмотрел https://hexdocs.pm/mox/Mox.html#module-multi-process-collaboration - сюда. Получилось, но несовсем. Если у кого-то есть опыт с этим, то расскажу, в чем проблема.
источник

LL

Lama Lover in pro.elixir
Tharin
Кто-нибудь использует Mox? Как вы тестируете вещи, которые надо замокать, хоть они и вызываются в другом процессе? Посмотрел https://hexdocs.pm/mox/Mox.html#module-multi-process-collaboration - сюда. Получилось, но несовсем. Если у кого-то есть опыт с этим, то расскажу, в чем проблема.
Я тоже раньше думал насчёт моков в тестировании. Но в эликсире с ними проблемы, и я обнаружил что для юнит-тестов моки обычно не нужны, а для интеграционных тестов поднимается common test с эмуляторами браузеров и всего такого
источник

T

Tharin in pro.elixir
Ну, у меня такая архитектура:
ReceiveUpdateController.create() - получает запрос от телеграмма с апдейтом, идёт в UpdateHandler.call(%{message: .... }) - передаёт туда message, а тот в свою очередь на основании этого вызывает MessageHandler.call(_, _, _, "/message_text") - передав message_text, на основании которого вызовется тот или иной flow. И как-то мне не хочется в тестах на UpdateHandler.call и MessageHandler.call прогонять флоу. Был вариант просто сделать фейковый Flow и стучать в него по какому-нибудь сообщению в тестах, но решил сделать через моки.
источник

LL

Lama Lover in pro.elixir
Tharin
Ну, у меня такая архитектура:
ReceiveUpdateController.create() - получает запрос от телеграмма с апдейтом, идёт в UpdateHandler.call(%{message: .... }) - передаёт туда message, а тот в свою очередь на основании этого вызывает MessageHandler.call(_, _, _, "/message_text") - передав message_text, на основании которого вызовется тот или иной flow. И как-то мне не хочется в тестах на UpdateHandler.call и MessageHandler.call прогонять флоу. Был вариант просто сделать фейковый Flow и стучать в него по какому-нибудь сообщению в тестах, но решил сделать через моки.
А, это всё флоу.
А ты не можешь сразу в UpdateHander слать тестовые сообщения?
Если ReceiveUpdateController - это просто то, что общается с телеграммом без логики, то зачем это тестировать
источник

T

Tharin in pro.elixir
его я и не тестирую
источник

T

Tharin in pro.elixir
но я хотел протестировать UpdateHandler на то, что он вызывает удаление сообщения, пришедшего из телеграмма, и вызывает MessageHandler.call для этого сообщения ) т.е. просто вызывает, а уже юнит тесты на эти вызовы написать в соответствующих тестах на эти модули
источник

T

Tharin in pro.elixir
и там интересная штука обнаружилась...кажется, что Mox ловит вызов в дочернем процессе только, если этот дочерний процесс был создан ожидаемой функцией, как коллбеком

Task.start(fn -> expected_function(a, b, c, d) end) - так он ловит, если ждёшь, что будет вызвана expected_function

Если же передать в Task.start(fn -> just_a_function(a, b, c, d) end) -  just_a_function, которая внутри себя где-то вызывает expected_function - не работает
источник

T

Tharin in pro.elixir
https://elixirforum.com/t/having-trouble-with-mocking-functions-being-called-in-child-processes/31272 я это вот здесь подробно описал, но чёт пока не увидел ответа) кажется, я что-то делаю не Elixir-way , и поэтому ловлю такие грабли
источник

T

Tharin in pro.elixir
Я вспомнил, почему я не хотел делать фейковые флоу, потому что я хотел протестировать, что при определенных сообщениях вызываются определенные флоу. И их будет очень много. На каждый по фейку делать - ну такое... проще моками
источник

LL

Lama Lover in pro.elixir
Tharin
Я вспомнил, почему я не хотел делать фейковые флоу, потому что я хотел протестировать, что при определенных сообщениях вызываются определенные флоу. И их будет очень много. На каждый по фейку делать - ну такое... проще моками
Ты что-то серьёзное мутишь. Видимо твой телегобот захватит мир или что-то такое
источник

T

Tharin in pro.elixir
да игру блин))
источник

LL

Lama Lover in pro.elixir
Tharin
да игру блин))
А точно, точно
источник

LL

Lama Lover in pro.elixir
На сколько я помню, у Mox была проблема с импортами, с apply и прочим. Он вроде лезет в AST модуля и на нём заменяет каждое MyModule.my_function на mocked_function
источник