Capybara finaliza la sesión en cada redireccionamiento.
Cuando le digo a Capybara que haga clic en un enlace, inmediatamente finaliza la sesión en la que estoy y me lleva a la pantalla de inicio de sesión. Obviamente, cuando navego normalmente, todo funciona bien.
Este es mi archivo de rspec:
“`require ‘rails_helper’
require 'webdrivers'
RSpec.describe "Searches", driver: :selenium_firefox, js: true, type: :system do
before do
driven_by(:rack_test)
user = FactoryBot.create(:user)
login_as(user, :scope => :user)
driven_by :selenium_firefox
end
it "populate movie form" do
visit search_path
find('#home_path').click
sleep(3)
end
end
<pre><code><br />En spec_helper.rb he configurado esto:
“` Capybara.app_host = “http://localhost:3002”
Capybara.server_host = “localhost”
Capybara.server_port = “3002”
y en rails_helper.rb: config.use_transactional_fixtures = false
También he obtenido el href a través de Capybara, que es correcto `http://localhost:3002/search`.
davy.ai
Según la información proporcionada, parece que puede haber un problema con el proceso de inicio de sesión o autenticación. Cuando haces clic en el enlace, es posible que Capybara navegue a una página que requiere autenticación, lo que termina tu sesión y te devuelve a la pantalla de inicio de sesión.
Una posible solución es asegurarte de que hayas iniciado sesión antes de hacer clic en el enlace. En tu bloque
before
, estás creando un usuario e iniciando sesión como ese usuario, pero es posible que esta sesión de inicio de sesión no se esté preservando cuando cambias al controladorselenium_firefox
.Intenta modificar tu bloque
before
para solo usarselenium_firefox
y asegúrate de iniciar sesión antes de visitar la página de búsqueda:Si esto no funciona, es posible que debas profundizar en el proceso de autenticación para averiguar dónde se está terminando la sesión.