Настройка
Rspec с капибарой и драйвером удаленного селена (автономный образ отладки Chrome). Использование StimulusJS в качестве основы Javascript.
Задача
В обычном браузере все работает как положено. Когда я пытаюсь протестировать события javascript с селеном капибары - сбой запроса POST с неавторизованным . Такое ощущение, что это очередной сеанс браузера. Например, обычные формы входа также работают - это просто вызовы javascript 'ajax', которые не работают.
Конфигурация Capybara
Capybara.app_host = "http://#{ENV['TEST_APP_HOST']}:#{ENV['TEST_PORT']}"
Capybara.run_server = false
Capybara.javascript_driver = :selenium
args = ['--no-default-browser-check', '--start-maximized']
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => args})
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(
app,
browser: :remote,
url: "http://#{ENV['SELENIUM_HOST']}:#{ENV['SELENIUM_PORT']}/wd/hub",
desired_capabilities: caps
)
end
HTML-фрагмент
<a data-action="click->checkout-special-category#toggle" id="checkout-special-category-0" href="/dashboard/websites/db9cfdc39a7e251859f525b911466fd7/toggle_special_category?c=special-category-0">Click</a>
Тестовый фрагмент
first('#checkout-special-category-0').click
expect(first('#checkout-special-category-0')).to have_selector('.checkout-special-categories--is-active')
Вход
Started POST "/dashboard/websites/db9cfdc39a7e251859f525b911466fd7/toggle_special_category?c=database-research" for 172.21.0.3 at 2019-06-19 15:14:53 +0000
Processing by Dashboard::WebsitesController#toggle_special_category as */*
Parameters: {"c"=>"database-research", "id"=>"db9cfdc39a7e251859f525b911466fd7", "website"=>{}}
Completed 401 Unauthorized in 0ms (ActiveRecord: 0.0ms)