Sha256: bbe44e696186054c53d0f33cc59959dfb31e131d4a2ac1ff53eb63466f84285e
Contents?: true
Size: 1.84 KB
Versions: 2
Compression:
Stored size: 1.84 KB
Contents
require 'spec_helper' require 'switch_user/provider/devise' class FakeWarden attr_reader :user_hash def initialize @user_hash = {} end def set_user(user, args) scope = args.fetch(:scope, :user) @user_hash[scope] = user end def logout(scope) @user_hash.delete(scope) end end class DeviseController def warden @warden ||= FakeWarden.new end def current_user @warden.user_hash[:user] end def current_admin @warden.user_hash[:admin] end end describe SwitchUser::Provider::Devise do let(:controller) { DeviseController.new } let(:provider) { SwitchUser::Provider::Devise.new(controller) } let(:user) { stub(:user) } it_behaves_like "a provider" it "can use alternate scopes" do user = stub(:user) provider.login(user, :admin) provider.current_user(:admin).should == user end describe "#login_exclusive" do before do SwitchUser.stub(:available_users => {:user => nil, :admin => nil}) provider.login(user, :admin) provider.login_exclusive(user, :scope => "user") end it "logs the user in" do provider.current_user.should == user end it "logs out other scopes" do provider.current_user(:admin).should be_nil end end describe "#logout_all" do it "logs out users under all scopes" do SwitchUser.stub(:available_users => {:user => nil, :admin => nil}) provider.login(user, :admin) provider.login(user, :user) provider.logout_all provider.current_user(:admin).should be_nil provider.current_user(:user).should be_nil end end describe "#all_current_users" do it "pulls users from an alternate scope" do SwitchUser.stub(:available_users => {:user => nil, :admin => nil}) provider.login(user, :admin) provider.current_users_without_scope.should == [user] end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
switch_user-0.9.1 | spec/provider/devise_spec.rb |
switch_user-0.9.0 | spec/provider/devise_spec.rb |