Commit 0d641a7 1 parent 0c6ad90 commit 0d641a7 Copy full SHA for 0d641a7
File tree 3 files changed +36
-1
lines changed
app/controllers/spree/admin
spec/controllers/spree/admin
core/lib/spree/testing_support/factories
3 files changed +36
-1
lines changed Original file line number Diff line number Diff line change @@ -121,7 +121,7 @@ def user_params
121
121
# handling raise from Spree::Admin::ResourceController#destroy
122
122
def user_destroy_with_orders_error
123
123
invoke_callbacks ( :destroy , :fails )
124
- render status : :forbidden , text : t ( ' spree.error_user_destroy_with_orders' )
124
+ render status : :forbidden , plain : t ( " spree.error_user_destroy_with_orders" )
125
125
end
126
126
127
127
def sign_in_if_change_own_password
Original file line number Diff line number Diff line change @@ -473,6 +473,35 @@ def user
473
473
end
474
474
end
475
475
476
+ describe "#destroy" do
477
+ stub_authorization! do |_user |
478
+ can :manage , Spree . user_class
479
+ end
480
+
481
+ subject do
482
+ delete :destroy , params : { id : user . id }
483
+ response
484
+ end
485
+
486
+ context "with user having no orders" do
487
+ let ( :user ) { create ( :user ) }
488
+
489
+ it "can be destroyed" do
490
+ is_expected . to be_redirect
491
+ expect ( flash [ :success ] ) . to eq ( "User has been successfully removed!" )
492
+ end
493
+ end
494
+
495
+ context "with user having orders" do
496
+ let ( :user ) { create ( :user , :with_orders ) }
497
+
498
+ it "cannot be destroyed" do
499
+ is_expected . to be_forbidden
500
+ expect ( subject . body ) . to eq I18n . t ( "spree.error_user_destroy_with_orders" )
501
+ end
502
+ end
503
+ end
504
+
476
505
describe "#orders" do
477
506
stub_authorization! do |_user |
478
507
can :manage , Spree . user_class
Original file line number Diff line number Diff line change 21
21
end
22
22
end
23
23
24
+ trait :with_orders do
25
+ after ( :create ) do |user , _ |
26
+ create ( :order , user : user )
27
+ end
28
+ end
29
+
24
30
factory :admin_user do
25
31
after ( :create ) do |user , _ |
26
32
admin_role = Spree ::Role . find_by ( name : 'admin' ) || create ( :role , name : 'admin' )
You can’t perform that action at this time.
0 commit comments