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