From bb040812aa35dc255d7e541d6a426a5af78954aa Mon Sep 17 00:00:00 2001 From: David Cook Date: Fri, 24 Jan 2025 14:49:18 +1100 Subject: [PATCH] Refactor spec --- .../spree/admin/users_controller_spec.rb | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/spec/controllers/spree/admin/users_controller_spec.rb b/spec/controllers/spree/admin/users_controller_spec.rb index ddcaf3e0df..f040604cb6 100644 --- a/spec/controllers/spree/admin/users_controller_spec.rb +++ b/spec/controllers/spree/admin/users_controller_spec.rb @@ -3,36 +3,39 @@ require 'spec_helper' RSpec.describe Spree::Admin::UsersController do - context '#authorize_admin' do + describe '#authorize_admin' do let(:user) { create(:user) } - let(:test_user) { create(:user) } before do allow(controller).to receive_messages spree_current_user: user - allow(Spree::User).to receive(:find).with(test_user.id.to_s).and_return(test_user) end - it 'should grant access to users with an admin role' do - user.update!(admin: true) - spree_post :index - expect(response).to render_template :index - end + context "as a super admin" do + let(:user) { create(:admin_user) } + let(:test_user) { create(:user) } - it "allows admins to update a user's show api key view" do - user.update!(admin: true) - spree_put :update, id: test_user.id, user: { show_api_key_view: true } - expect(response).to redirect_to spree.edit_admin_user_path(test_user) - end + before do + allow(Spree::User).to receive(:find).with(test_user.id.to_s).and_return(test_user) + end - it "re-renders the edit form if error" do - user.update!(admin: true) - spree_put :update, id: test_user.id, user: { password: "blah", password_confirmation: "" } + it 'should grant access to users with an admin role' do + spree_post :index + expect(response).to render_template :index + end - expect(response).to render_template :edit + it "allows admins to update a user's show api key view" do + spree_put :update, id: test_user.id, user: { show_api_key_view: true } + expect(response).to redirect_to spree.edit_admin_user_path(test_user) + end + + it "re-renders the edit form if error" do + spree_put :update, id: test_user.id, user: { password: "blah", password_confirmation: "" } + + expect(response).to render_template :edit + end end it 'should deny access to users without an admin role' do - allow(user).to receive_messages admin?: false spree_post :index expect(response).to redirect_to('/unauthorized') end