mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-11 03:40:20 +00:00
Make sure to link credit payment method on create and update
This commit is contained in:
@@ -148,7 +148,7 @@ class Enterprise < ApplicationRecord
|
||||
|
||||
after_create :set_default_contact
|
||||
after_create :relate_to_owners_enterprises
|
||||
after_create :add_credit_payment_method
|
||||
after_save :add_credit_payment_method
|
||||
|
||||
after_rollback :restore_permalink
|
||||
after_touch :touch_distributors
|
||||
|
||||
@@ -501,7 +501,8 @@ RSpec.describe Enterprise do
|
||||
|
||||
describe "add_credit_payment_method" do
|
||||
it "links credit payment method to the enterprise" do
|
||||
expect(CreditPaymentMethod::LinkerService).to receive(:link)
|
||||
# Due to various callbacks the enterprise gets updated twice after creation
|
||||
expect(CreditPaymentMethod::LinkerService).to receive(:link).at_least(1)
|
||||
|
||||
create(:distributor_enterprise)
|
||||
end
|
||||
@@ -513,6 +514,15 @@ RSpec.describe Enterprise do
|
||||
create(:supplier_enterprise)
|
||||
end
|
||||
end
|
||||
|
||||
context "when an enterprise becomes a distributor" do
|
||||
it "links credit payment method to the enterprise" do
|
||||
enterprise = create(:supplier_enterprise)
|
||||
|
||||
expect(CreditPaymentMethod::LinkerService).to receive(:link)
|
||||
enterprise.update(sells: "own")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -93,11 +93,11 @@ RSpec.describe Spree::PaymentMethod::CustomerCredit do
|
||||
|
||||
around do |example|
|
||||
# Customer is needed to create a purchase and a customer is linked to an enterprise.
|
||||
# That means FactoryBot will create an enterprise, so we disable the after create callback
|
||||
# That means FactoryBot will create an enterprise, so we disable the after save callback
|
||||
# so that credit payment methods are not created.
|
||||
Enterprise.skip_callback(:create, :after, :add_credit_payment_method)
|
||||
Enterprise.skip_callback(:save, :after, :add_credit_payment_method)
|
||||
example.run
|
||||
Enterprise.set_callback(:create, :after, :add_credit_payment_method)
|
||||
Enterprise.set_callback(:save, :after, :add_credit_payment_method)
|
||||
end
|
||||
|
||||
it "returns an error" do
|
||||
@@ -170,11 +170,11 @@ RSpec.describe Spree::PaymentMethod::CustomerCredit do
|
||||
|
||||
around do |example|
|
||||
# Customer is needed to create a purchase and a customer is linked to an enterprise.
|
||||
# That means FactoryBot will create an enterprise, so we disable the after create callback
|
||||
# That means FactoryBot will create an enterprise, so we disable the after save callback
|
||||
# so that credit payment methods are not created.
|
||||
Enterprise.skip_callback(:create, :after, :add_credit_payment_method)
|
||||
Enterprise.skip_callback(:save, :after, :add_credit_payment_method)
|
||||
example.run
|
||||
Enterprise.set_callback(:create, :after, :add_credit_payment_method)
|
||||
Enterprise.set_callback(:save, :after, :add_credit_payment_method)
|
||||
end
|
||||
|
||||
it "returns an error" do
|
||||
|
||||
@@ -8,9 +8,9 @@ RSpec.describe CreditPaymentMethod::LinkerService do
|
||||
around do |example|
|
||||
# after_save call back will call the linker we are testing, we disable it to avoid
|
||||
# unintended side effect
|
||||
Enterprise.skip_callback(:create, :after, :add_credit_payment_method)
|
||||
Enterprise.skip_callback(:save, :after, :add_credit_payment_method)
|
||||
example.run
|
||||
Enterprise.set_callback(:create, :after, :add_credit_payment_method)
|
||||
Enterprise.set_callback(:save, :after, :add_credit_payment_method)
|
||||
end
|
||||
|
||||
describe ".link" do
|
||||
|
||||
Reference in New Issue
Block a user