Skip to content

Instantly share code, notes, and snippets.

@jamesmk
Last active August 29, 2015 14:19
Show Gist options
  • Save jamesmk/77a21f4eabc45df68226 to your computer and use it in GitHub Desktop.
Save jamesmk/77a21f4eabc45df68226 to your computer and use it in GitHub Desktop.
Devise sign in support helper
# provides a `login(user)` method that works for all controller, request and feature specs
# requires devise, rspec and capybara
#
# usage:
# def super_admin_login
# role = FactoryGirl.create(:role, name: 'super admin')
# user = FactoryGirl.create(:user, first_name: 'SuperAdmin', role: role)
# login(user)
# end
module SignInControllerHelper
def login(user)
sign_in user
end
end
module SignInRequestHelper
def login(user)
post_via_redirect user_session_path, 'user[email]' => user.email, 'user[password]' => user.password
end
end
module SignInFeatureHelper
def login(user)
visit new_user_session_path
fill_in 'user_email', with: user.email
fill_in 'user_password', with: user.password
click_button 'Submit'
end
end
RSpec.configure do |config|
config.include Devise::TestHelpers, type: :controller
config.include SignInControllerHelper, type: :controller
config.include SignInRequestHelper, type: :request
config.include SignInFeatureHelper, type: :feature
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment