Skip to content

Instantly share code, notes, and snippets.

@dchapman1988
Created December 14, 2012 17:20
Show Gist options
  • Save dchapman1988/4287110 to your computer and use it in GitHub Desktop.
Save dchapman1988/4287110 to your computer and use it in GitHub Desktop.
Some common steps that are used in typical integration tests
module CommonSteps
module Login
extend ActiveSupport::Concern
def create_regular_user
regular_user = FactoryGirl.create(:user)
end
def create_refinery_user
refinery_role = FactoryGirl.create(:refinery_role)
refinery_user = FactoryGirl.create(:refinery_user)
refiner_user.roles << refinery_role
return refinery_user
end
def create_admin_user
admin_user = FactoryGirl.create(:admin_user)
admin_role = FactoryGirl.create(:admin_role)
admin_user.roles << refinery_role
return refinery_user
end
def simulate_login(user)
page.driver.get new_user_session_path
within("form[id='new_user']") do
find(:css, "input[id='user_email']").set(user.email)
find(:css, "input[id='user_password']").set('123456')
find(:css, "input[name='commit']").click
end
end
def self.included(object)
object.send(:Given, 'I am a logged in user') do
user = create_regular_user
simulate_login(user)
end
object.send(:Given, 'I am a logged in refinery user') do
user = create_refinery_user
simulate_login(user)
end
object.send(:Given, 'I am a logged in admin user') do
user = create_admin_user
simulate_login(user)
end
end
end
end
@adamgamble
Copy link

module CommonSteps
module Login
extend ActiveSupport::Concern

def create_regular_user
  regular_user = FactoryGirl.create(:user)
end 

def create_refinery_user
  FactoryGirl.create(:refinery_user)
end 

def create_admin_user
  FactoryGirl.create(:admin_user)
end 

def simulate_login(user)
  page.driver.get new_user_session_path
  within("form[id='new_user']") do
    find(:css, "input[id='user_email']").set(user.email)
    find(:css, "input[id='user_password']").set('123456')
    find(:css, "input[name='commit']").click
  end 
end 

def self.included(object)
  object.send(:Given, 'I am a logged in user') do
    user = create_regular_user
    simulate_login(user)
  end 

  object.send(:Given, 'I am a logged in refinery user') do
    user = create_refinery_user
    simulate_login(user)
  end 

  object.send(:Given, 'I am a logged in admin user') do
    user = create_refinery_user
    simulate_login(user)
  end 
end 

end
end

@dchapman1988
Copy link
Author

@adamgamble And just add the roles in the factory definition I suppose?

@knewter
Copy link

knewter commented Dec 14, 2012

Yeah. And take advantage of FactoryGirl's inheritance to make admin derive from user, etc. just adding the appropriate role in in the factory

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment