Sha256: 343fac3020935bafdf76707d6273b39fcd30a28cd4fc04d954ab5ddccbf9b2cb
Contents?: true
Size: 1.92 KB
Versions: 3
Compression:
Stored size: 1.92 KB
Contents
require 'spec_helper' RSpec.describe "Using SwitchUser", :type => :request do let(:user) { User.create!(:email => "foo@bar.com", :admin => true) } let(:other_user) { User.create!(:email => "other@bar.com", :admin => false) } before do SwitchUser.reset_config SwitchUser.provider = :session SwitchUser.controller_guard = lambda { |current_user, request| Rails.env.test? } SwitchUser.redirect_path = lambda {|_,_| "/dummy/open"} end it "signs a user in using switch_user" do # can't access protected url get "/dummy/protected" expect(response).to be_redirect get "/switch_user?scope_identifier=user_#{other_user.id}" expect(response).to be_redirect # now that we are logged in via switch_user we can access get "/dummy/protected" expect(response).to be_success end context "using switch_back" do before do SwitchUser.switch_back = true SwitchUser.controller_guard = lambda { |current_user, request, original_user| current_user && current_user.admin? || original_user && original_user.admin? } end it "can switch back to a different user" do # login post "/login", :id => user.id follow_redirect! # have SwitchUser remember us get "/switch_user/remember_user", :remember => true expect(session["original_user_scope_identifier"]).to be_present # check that we can switch to another user get "/switch_user?scope_identifier=user_#{other_user.id}" expect(session["user_id"]).to eq other_user.id # logout get "/logout" expect(session["user_id"]).to be_nil # check that we can still switch to another user get "/switch_user?scope_identifier=user_#{user.id}" expect(session["user_id"]).to eq user.id # check that we can be un-remembered get "/switch_user/remember_user", :remember => false expect(session["original_user"]).to be_nil end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
switch_user-1.4.0 | spec/integration/switch_user_spec.rb |
switch_user-1.3.1 | spec/integration/switch_user_spec.rb |
switch_user-1.3.0 | spec/integration/switch_user_spec.rb |