Skip to content

Commit 6d65607

Browse files
authored
Merge pull request openfoodfoundation#14022 from rioug/14014-manual-credit-customer-authorization
[Payment with Credit] Fix manual crediting customer
2 parents 4313422 + 4946ffc commit 6d65607

3 files changed

Lines changed: 14 additions & 6 deletions

File tree

app/models/spree/ability.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,8 @@ def add_order_management_abilities(user)
315315

316316
can [:create], Spree::Order
317317

318-
can [:read, :update], Spree::Order do |order|
318+
# Spree::Admin::PaymentController need to load the order to credit_customer
319+
can [:read, :update, :credit_customer], Spree::Order do |order|
319320
# We allow editing orders with a nil distributor as this state occurs
320321
# during the order creation process from the admin backend
321322
order.distributor.nil? ||
@@ -367,7 +368,7 @@ def add_order_management_abilities(user)
367368
can_edit_as_producer(shipment.order, user)
368369
end
369370

370-
can [:admin, :index, :read, :create, :edit, :update, :fire], Spree::Payment
371+
can [:admin, :index, :read, :create, :edit, :update, :fire, :credit_customer], Spree::Payment
371372
can [:admin, :index, :read, :create, :edit, :update, :fire], Spree::Adjustment
372373
can [:admin, :index, :read, :create, :edit, :update, :fire], Spree::ReturnAuthorization
373374
can [:destroy], Spree::Adjustment do |adjustment|

spec/models/spree/ability_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,11 @@
634634
for: Spree::Payment)
635635
end
636636

637+
it "is able to credit a customer" do
638+
is_expected.to have_ability([:credit_customer], for: Spree::Order)
639+
is_expected.to have_ability([:credit_customer], for: Spree::Payment)
640+
end
641+
637642
it "should be able to read/write Shipments on a product" do
638643
is_expected.to have_ability([:admin, :index, :read, :create, :edit, :update, :fire],
639644
for: Spree::Shipment)
@@ -697,6 +702,10 @@
697702
is_expected.to have_ability([:admin, :index, :update], for: Customer)
698703
end
699704

705+
it "is able to read/write customer account transaction" do
706+
is_expected.to have_ability([:admin, :index, :create], for: CustomerAccountTransaction)
707+
end
708+
700709
context "for a given order_cycle" do
701710
let!(:order_cycle) { create(:simple_order_cycle, coordinator: d2) }
702711
let!(:exchange){

spec/requests/spree/admin/payments_spec.rb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# frozen_string_literal: true
22

33
RSpec.describe Spree::Admin::PaymentsController do
4-
let(:user) { order.user }
54
let(:order) { create(:completed_order_with_fees) }
5+
let(:user) { create(:enterprise_user, enterprises: [order.distributor]) }
66

77
before do
8-
sign_in create(:admin_user)
8+
sign_in user
99
end
1010

1111
describe "POST /admin/orders/:order_number/payments.json" do
@@ -369,8 +369,6 @@
369369

370370
before do
371371
allow(customer_credit_service_mock).to receive(:apply)
372-
# order setup will call Orders::CustomerCreditService once
373-
expect(Orders::CustomerCreditService).to receive(:new).and_call_original
374372
expect(Orders::CustomerCreditService).to receive(:new).and_return(
375373
customer_credit_service_mock
376374
)

0 commit comments

Comments
 (0)