mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
Ensure adjustments can access soft-deleted originators
Note: originator is generally an EnterpriseFee or a TaxRate
This commit is contained in:
@@ -162,6 +162,13 @@ module Spree
|
||||
result
|
||||
end
|
||||
|
||||
# Allow accessing soft-deleted originator objects
|
||||
def originator
|
||||
return if originator_type.blank?
|
||||
|
||||
originator_type.constantize.unscoped { super }
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def update_adjustable
|
||||
|
||||
@@ -139,4 +139,24 @@ describe EnterpriseFee do
|
||||
end.to change(order.adjustments, :count).by(0)
|
||||
end
|
||||
end
|
||||
|
||||
describe "soft-deletion" do
|
||||
let(:tax_category) { create(:tax_category) }
|
||||
let(:enterprise_fee) { create(:enterprise_fee, tax_category: tax_category ) }
|
||||
let!(:adjustment) { create(:adjustment, originator: enterprise_fee) }
|
||||
|
||||
before do
|
||||
enterprise_fee.destroy
|
||||
enterprise_fee.reload
|
||||
end
|
||||
|
||||
it "soft-deletes the enterprise fee" do
|
||||
expect(enterprise_fee.deleted_at).to_not be_nil
|
||||
end
|
||||
|
||||
it "can be accessed by old adjustments" do
|
||||
expect(adjustment.reload.originator).to eq enterprise_fee
|
||||
expect(adjustment.originator.tax_category).to eq enterprise_fee.tax_category
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user