From 7e2d9ff381aecd3763da1753b8b6121e34fb0689 Mon Sep 17 00:00:00 2001 From: Cillian O'Ruanaidh Date: Fri, 2 Apr 2021 15:41:59 +0100 Subject: [PATCH] The Resend Confirmation and Send/Print Invoice links should display for resumed orders too These are links inside the Actions drop down menu on the edit order view. Before they were missing if an order was in a resumed state. Fixes #5946 --- app/helpers/spree/admin/orders_helper.rb | 2 +- .../helpers/spree/admin/orders_helper_spec.rb | 37 ++++++++++++++++--- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/app/helpers/spree/admin/orders_helper.rb b/app/helpers/spree/admin/orders_helper.rb index 8a93ff2f54..ff58511282 100644 --- a/app/helpers/spree/admin/orders_helper.rb +++ b/app/helpers/spree/admin/orders_helper.rb @@ -16,7 +16,7 @@ module Spree @order ||= order links = [] links << edit_order_link unless action_name == "edit" - links.concat(complete_order_links) if @order.complete? + links.concat(complete_order_links) if @order.complete? || @order.resumed? links << ship_order_link if @order.ready_to_ship? links << cancel_order_link if @order.can_cancel? links diff --git a/spec/helpers/spree/admin/orders_helper_spec.rb b/spec/helpers/spree/admin/orders_helper_spec.rb index 8d1384efa8..7c665425bf 100644 --- a/spec/helpers/spree/admin/orders_helper_spec.rb +++ b/spec/helpers/spree/admin/orders_helper_spec.rb @@ -19,6 +19,7 @@ describe Spree::Admin::OrdersHelper, type: :helper do allow(order).to receive(:complete?) { false } allow(order).to receive(:ready_to_ship?) { false } allow(order).to receive(:can_cancel?) { false } + allow(order).to receive(:resumed?) { false } Spree::Config[:enable_invoices?] = false Spree::Config[:enable_receipt_printing?] = false end @@ -71,11 +72,7 @@ describe Spree::Admin::OrdersHelper, type: :helper do end context "with invoices enabled" do - before do - Spree::Config[:enable_invoices?] = true - allow(order).to receive(:distributor) { distributor } - allow(distributor).to receive(:can_invoice?) { true } - end + before { enable_invoices } it "adds send and print invoice links" do links = helper.order_links(order) @@ -100,5 +97,35 @@ describe Spree::Admin::OrdersHelper, type: :helper do end end end + + context "resumed order" do + before { allow(order).to receive(:resumed?) { true } } + + it "includes a resend confirmation link" do + links = helper.order_links(order).map { |link| link[:name] } + + expect(links).to match_array(["Edit Order", "Resend Confirmation"]) + end + + context "with invoices enabled" do + before { enable_invoices } + + it "includes send invoice and print invoice links" do + links = helper.order_links(order).map { |link| link[:name] } + + expect(links).to match_array( + ["Edit Order", "Print Invoice", "Resend Confirmation", "Send Invoice"] + ) + end + end + end + end + + private + + def enable_invoices + Spree::Config[:enable_invoices?] = true + allow(order).to receive(:distributor) { distributor } + allow(distributor).to receive(:can_invoice?) { true } end end