Capybara не работает с кабелем действия
Я использую Rails 5 beta 3 с кабелем действия, интеграция отлично работает в разработке, но когда я пытаюсь запустить тест функций через capybara, он, похоже, не попадает в действия канала.
Я использую Portergeist и настроил Puma в качестве сервера capybara. Также я использую es5-shim и es6-shim.
кто-нибудь еще сталкивался с этим или знает решение?
спасибо!
редактировать
Im, используя эту ветку capybara для настройка Puma в Capybara
Capybara.register_server :puma do |app, port, host|
require 'puma'
Puma::Server.new(app).tap do |s|
s.add_tcp_listener host, port
end.run.join
end
Я ничего не установил в config.action_cable.allowed_request_origins
2 ответов
для тестирования actioncable с Capybara вам нужно использовать многопоточный веб-сервер. Поскольку вы используете текущий запрос pull на Capybara, который поддерживает регистрацию именованных драйверов, вам нужно будет указать именованный сервер для использования
Capybara.server = :puma
для тех, кто не использует ветку capybara с именованными серверами, вы можете сделать
Capybara.server {|app, port|
require 'puma'
Puma::Server.new(app).tap do |s|
s.add_tcp_listener Capybara.server_host, port
end.run.join
}
из Capybara v2.7.0 передача блока в Capybara::server
устарел (commit).
сообщение об осуждении:
DEPRECATED: Passing a block to Capybara::server is deprecated, please use Capybara::register_server instead
зарегистрировать новый веб-сервер (например,puma
) использование:
Capybara.register_server :puma do |app, port, host|
require 'puma'
Puma::Server.new(app).tap do |s|
s.add_tcp_listener host, port
end.run.join
end
ссылке документация