Pepino acelerando

Você pode ignorar os carregamentos de página e o preenchimento de formulários implementando um login backdoor com um pouco de código.

Isso pressupõe que seu login é governado por um SessionsController e você pode fazer login passando uma instância de usuário em um método de login. Ajuste para corresponder ao seu sistema de autenticação.

#features/support/sign_in_backdoor.rb

class SessionsController
def backdoor
sign_in
(User.find_by_email(params[:email]))
redirect_to
:dashboard
end
end

MyRailsApp::Application.routes.tap do |routes|
routes
.disable_clear_and_finalize = true
routes
.draw do
match
'backdoor', to: 'sessions#backdoor'
end
end

Agora você pode adicionar um ajudante ao seu ambiente pepino e usar a função sign_in em qualquer lugar em suas etapas.

#features/step_definitions/session_steps.rb

module SessionStepMethods
def sign_in(user)
visit
"/backdoor?email=#{user.email}"
end
end
World(SessionStepMethods)

Não se preocupe, é totalmente seguro. Como o backdoor está em recursos / suporte, ele é corrigido ao executar o cucumber, mas não em instâncias reais do servidor.