From fa4751b9983299a0ec88a3737e5fd3299a6d5ce9 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Wed, 10 Nov 2021 15:09:24 +0000 Subject: [PATCH 1/2] Include items from resumed orders when mailing producers --- app/mailers/producer_mailer.rb | 2 +- spec/mailers/producer_mailer_spec.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/mailers/producer_mailer.rb b/app/mailers/producer_mailer.rb index b0abc8209e..18becd43c6 100644 --- a/app/mailers/producer_mailer.rb +++ b/app/mailers/producer_mailer.rb @@ -65,7 +65,7 @@ class ProducerMailer < Spree::BaseMailer from_order_cycle(order_cycle). sorted_by_name_and_unit_value. merge(Spree::Product.with_deleted.in_supplier(producer)). - merge(Spree::Order.by_state('complete')) + merge(Spree::Order.by_state(["complete", "resumed"])) end def total_from_line_items(line_items) diff --git a/spec/mailers/producer_mailer_spec.rb b/spec/mailers/producer_mailer_spec.rb index 6437b921a3..cfa1b4ee44 100644 --- a/spec/mailers/producer_mailer_spec.rb +++ b/spec/mailers/producer_mailer_spec.rb @@ -26,6 +26,7 @@ describe ProducerMailer, type: :mailer do let(:p3) { create(:product, name: "Banana", price: 34.56, supplier: s1) } let(:p4) { create(:product, name: "coffee", price: 45.67, supplier: s1) } let(:p5) { create(:product, name: "Daffodil", price: 56.78, supplier: s1) } + let(:p6) { create(:product, name: "Eggs", price: 67.89, supplier: s1) } let(:order_cycle) { create(:simple_order_cycle) } let!(:incoming_exchange) { order_cycle.exchanges.create! sender: s1, receiver: d1, incoming: true, @@ -103,6 +104,22 @@ describe ProducerMailer, type: :mailer do expect(mail.body.encoded).not_to include p5.name end + context "when a cancelled order has been resumed" do + let!(:order_resumed) do + order = create(:order, distributor: d1, order_cycle: order_cycle, state: 'complete') + order.line_items << create(:line_item, variant: p6.variants.first) + order.finalize! + order.cancel + order.resume + order.save + order + end + + it "includes items from resumed orders" do + expect(mail.body.encoded).to include p6.name + end + end + it "includes the total" do expect(mail.body.encoded).to include 'Total: $50.00' expect(body_as_html(mail).find("tr.total-row")) From b1c0da96751d901554e59d82db9eeabd9142b43b Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Tue, 16 Nov 2021 17:32:10 +0000 Subject: [PATCH 2/2] Bang! --- spec/mailers/producer_mailer_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/mailers/producer_mailer_spec.rb b/spec/mailers/producer_mailer_spec.rb index cfa1b4ee44..0d365ec0f4 100644 --- a/spec/mailers/producer_mailer_spec.rb +++ b/spec/mailers/producer_mailer_spec.rb @@ -111,7 +111,7 @@ describe ProducerMailer, type: :mailer do order.finalize! order.cancel order.resume - order.save + order.save! order end