spec/controllers/refinery/admin/users_controller_spec.rb in refinerycms-authentication-2.0.10 vs spec/controllers/refinery/admin/users_controller_spec.rb in refinerycms-authentication-2.1.0

- old
+ new

@@ -1,9 +1,9 @@ require "spec_helper" describe Refinery::Admin::UsersController do - login_refinery_superuser + refinery_login_with_factory :refinery_superuser shared_examples_for "new, create, update, edit and update actions" do it "loads roles" do Refinery::Role.should_receive(:all).once{ [] } get :new @@ -51,23 +51,32 @@ end end describe "#edit" do it "renders the edit template" do - get :edit, :id => refinery_superuser.id + get :edit, :id => logged_in_user.id response.should be_success response.should render_template("refinery/admin/users/edit") end it_should_behave_like "new, create, update, edit and update actions" end describe "#update" do + let(:additional_user) { FactoryGirl.create :refinery_user } it "updates a user" do - user = FactoryGirl.create(:refinery_user) - Refinery::User.should_receive(:find).at_least(1).times{ user } - put "update", :id => user.id.to_s, :user => {} + Refinery::User.should_receive(:find).at_least(1).times{ additional_user } + put "update", :id => additional_user.id.to_s, :user => {} response.should be_redirect + end + + context "when specifying plugins" do + it "won't allow to remove 'Users' plugin from self" do + Refinery::User.should_receive(:find).at_least(1).times{ logged_in_user } + put "update", :id => logged_in_user.id.to_s, :user => {:plugins => ["some plugin"]} + + flash[:error].should eq("You cannot remove the 'Users' plugin from the currently logged in account.") + end end it_should_behave_like "new, create, update, edit and update actions" end end