mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
81 lines
2.2 KiB
Ruby
81 lines
2.2 KiB
Ruby
module AuthenticationWorkflow
|
|
include Warden::Test::Helpers
|
|
|
|
def quick_login_as(user)
|
|
login_as user
|
|
end
|
|
|
|
def quick_login_as_admin
|
|
admin_role = Spree::Role.find_or_create_by_name!('admin')
|
|
admin_user = create(:user,
|
|
:password => 'passw0rd',
|
|
:password_confirmation => 'passw0rd',
|
|
:remember_me => false,
|
|
:persistence_token => 'pass',
|
|
:login => 'admin@ofn.org')
|
|
|
|
admin_user.spree_roles << admin_role
|
|
quick_login_as admin_user
|
|
admin_user
|
|
end
|
|
|
|
def login_to_admin_section
|
|
quick_login_as_admin
|
|
visit spree.admin_path
|
|
end
|
|
|
|
# TODO: Should probably just rename this to create_user
|
|
def create_enterprise_user( attrs = {} )
|
|
new_user = create(:user, attrs)
|
|
new_user.spree_roles = [] # for some reason unbeknown to me, this new user gets admin permissions by default.
|
|
new_user.save
|
|
new_user
|
|
end
|
|
|
|
def login_to_admin_as user
|
|
quick_login_as user
|
|
visit spree.admin_path
|
|
#visit spree.admin_path
|
|
#fill_in 'spree_user_email', :with => user.email
|
|
#fill_in 'spree_user_password', :with => user.password
|
|
#click_button 'Login'
|
|
end
|
|
|
|
def login_to_consumer_section
|
|
user_role = Spree::Role.find_or_create_by_name!('user')
|
|
user = create_enterprise_user({
|
|
:email => 'someone@ofn.org',
|
|
:password => 'passw0rd',
|
|
:password_confirmation => 'passw0rd',
|
|
:remember_me => false,
|
|
:persistence_token => 'pass',
|
|
:login => 'someone@ofn.org'})
|
|
|
|
user.spree_roles << user_role
|
|
|
|
visit spree.login_path
|
|
fill_in_and_submit_login_form user
|
|
end
|
|
|
|
def fill_in_and_submit_login_form(user)
|
|
fill_in "email", with: user.email
|
|
fill_in "password", with: user.password
|
|
click_button "Login"
|
|
end
|
|
end
|
|
|
|
RSpec.configure do |config|
|
|
config.extend AuthenticationWorkflow, :type => :feature
|
|
|
|
# rspec-rails 3 will no longer automatically infer an example group's spec type
|
|
# from the file location. You can explicitly opt-in to the feature using this
|
|
# config option.
|
|
# To explicitly tag specs without using automatic inference, set the `:type`
|
|
# metadata manually:
|
|
#
|
|
# describe ThingsController, :type => :controller do
|
|
# # Equivalent to being in spec/controllers
|
|
# end
|
|
config.infer_spec_type_from_file_location!
|
|
end
|