From 3ec58d879110866721d325cc628cbf50d3e8d328 Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Wed, 15 Mar 2023 14:07:21 +1100 Subject: [PATCH] Add #vouchers, return an array of voucher adjustments --- app/models/spree/order.rb | 4 ++++ spec/models/spree/order_spec.rb | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/app/models/spree/order.rb b/app/models/spree/order.rb index 40dfbcb093..4a5ef3bc81 100644 --- a/app/models/spree/order.rb +++ b/app/models/spree/order.rb @@ -618,6 +618,10 @@ module Spree end end + def vouchers + adjustments.where(originator_type: 'Voucher') + end + private def fee_handler diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index 4ea1933d6c..7260ca431a 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -1430,4 +1430,21 @@ describe Spree::Order do end end end + + describe "#vouchers" do + let(:voucher) { Voucher.create(code: 'new_code', enterprise: order.distributor) } + + context "when no voucher adjustment" do + it 'returns an empty array' do + expect(order.vouchers).to eq([]) + end + end + + it "returns an array of voucher adjusment" do + order.save! + expected_adjustments = Array.new(2) { voucher.create_adjustment(voucher.code, order) } + + expect(order.vouchers).to eq(expected_adjustments) + end + end end