Include items from resumed orders when mailing producers

This commit is contained in:
Matt-Yorkley
2021-11-10 15:09:24 +00:00
parent d799f446be
commit fa4751b998
2 changed files with 18 additions and 1 deletions

View File

@@ -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)

View File

@@ -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"))