Sha256: d2acdbb72a6195fca9bd39ad762a6477c87db0dd53ce86bab3b4ac2d0393f1a3
Contents?: true
Size: 1.92 KB
Versions: 6
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 {|_,_| "/dummys/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
6 entries across 6 versions & 1 rubygems