Do regular login in feature specs

private-asciicasts
Marcin Kulik 10 years ago
parent 3ced30b4f0
commit 15d9c92a77

@ -1,26 +1,5 @@
module Asciinema module Asciinema
module Test module Test
module Warden
class EmailStrategy < ::Warden::Strategies::Base
def valid?
email.present?
end
def authenticate!
user = User.find_by_email(email)
user && success!(user)
end
private
def email
request.params['email']
end
end
end
module Authentication module Authentication
attr_accessor :current_user attr_accessor :current_user
end end
@ -37,20 +16,15 @@ module Asciinema
module FeatureHelpers module FeatureHelpers
def login_as(user) def login_as(user)
visit edit_user_path(email: user.email) visit new_login_path
fill_in :email, with: user.email
click_button 'Log in'
visit "/login/#{user.expiring_tokens.last.token}"
end end
end end
end end
end end
Warden::Strategies.add(:test, Asciinema::Test::Warden::EmailStrategy)
ApplicationController.class_eval do
def warden_strategies
[:test]
end
end
RSpec.configure do |config| RSpec.configure do |config|
config.before(:each, type: :controller) do config.before(:each, type: :controller) do
controller.class_eval { include Asciinema::Test::Authentication } controller.class_eval { include Asciinema::Test::Authentication }

Loading…
Cancel
Save