Skip to content
Jeff Ferber edited this page Mar 10, 2013 · 2 revisions

Using Qlive with Devise and FactoryGirl

Add login_as helper method

If you do not yet have a qlive_helper.rb file, create it and and include it in your qlive suites. In this helper, include Devise::TestHelpers and add a login_as method.

For example:

module QliveHelper
  protected
  
  include Devise::TestHelpers

  def reset_session(rack_request)
    @rack_request = rack_request
    rack_request.cookies['remember_account_token'] = ''
    rack_request.session.each { |key, val| rack_request.session.delete(key)}
  end

  def login_as(user)
    @rack_request.env["devise.mapping"] = Devise.mappings[:user]
    sign_in user
  end
  
end  

note: change the Devise.mappings to reflect the desired user scope. eg, you may want, eg, Devise.mappings[:account]

Use it in your suite

Use the login_as helper in before_each_suite in your suite.

For example:

class MyPostLoginQlive
  include Qlive::Suite
  include QliveHelper

  def before_each_suite(rack_request)
    reset_session(rack_request)
    login_as FactoryGirl.create(:user)
  end
end  

Clone this wiki locally