Files
dunlop-core/lib/rspec/dunlop/authentication_support.rb
T
2018-01-20 13:02:44 -03:00

60 lines
1.4 KiB
Ruby

module Rspec::Dunlop::AuthenticationSupport
# Add support for:
# visit WorkflowInstance.last
def visit(*args)
case args[0]
when ActiveRecord::Base, Array, Class
args[0] = polymorphic_path(args[0])
end
super *args
end
def i_am_logged_in_as_user(*user_args)
if user_args.last.is_a?(Hash)
user_args[-1][:role_names] = Array.wrap(user_args[-1][:role_names]) | ['read-class-WorkflowInstance'] if user_args[-1][:role_names].present?
end
@user = FactoryBot.create(:user, *user_args)
i_am_logged_in_as(@user)
end
def i_am_logged_in_as_user_of_service_provider
@service_provider ||= FactoryBot.create :service_provider, :all_scenarios
@user = FactoryBot.create(:user, service_provider: @service_provider)
i_am_logged_in_as(@user)
end
def i_am_logged_in_as_admin
@user = FactoryBot.create(:admin)
i_am_logged_in_as(@user)
end
def current_user
@user
end
def i_am_logged_in_as(user)
visit new_user_session_path
fill_in 'Email', with: user.email
fill_in 'Password', with: user.password
click_button 'Log in'
#expect(current_path).to eq root_path
end
def screenshot
screenshot_and_open_image
end
def open_page
save_and_open_page
end
def submit_form
find('input[type="submit"]').click
end
def submit_collection_form
find('#new_collection input[type="submit"]').click
end
end