From c94badbf368cff306a054e1733787e6e95d2c69d Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Fri, 10 Nov 2017 15:02:36 +1100 Subject: [PATCH] Stub or provide mailer as appropriate --- .../admin/proxy_orders_controller_spec.rb | 1 + spec/mailers/order_mailer_spec.rb | 6 ++---- spec/models/proxy_order_spec.rb | 15 +++++++++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/spec/controllers/admin/proxy_orders_controller_spec.rb b/spec/controllers/admin/proxy_orders_controller_spec.rb index 3b711c93b9..e74f8495e4 100644 --- a/spec/controllers/admin/proxy_orders_controller_spec.rb +++ b/spec/controllers/admin/proxy_orders_controller_spec.rb @@ -74,6 +74,7 @@ describe Admin::ProxyOrdersController, type: :controller do before do # Processing order to completion + allow(Spree::OrderMailer).to receive(:cancel_email) { double(:email, deliver: true) } order.update_attribute(:shipping_method_id, shipping_method.id) while !order.completed? do break unless order.next! end proxy_order.update_attribute(:canceled_at, Time.zone.now) diff --git a/spec/mailers/order_mailer_spec.rb b/spec/mailers/order_mailer_spec.rb index 4e974545b3..f786dbcff4 100644 --- a/spec/mailers/order_mailer_spec.rb +++ b/spec/mailers/order_mailer_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' describe Spree::OrderMailer do + let!(:mail_method) { create(:mail_method, preferred_mails_from: 'spree@example.com') } + describe "order confimation" do after do ActionMailer::Base.deliveries.clear @@ -20,10 +22,6 @@ describe Spree::OrderMailer do ship_address = create(:address, :address1 => "distributor address", :city => 'The Shire', :zipcode => "1234") @order1 = create(:order, :distributor => @distributor, :bill_address => @bill_address, ship_address: ship_address, :special_instructions => @shipping_instructions) ActionMailer::Base.deliveries = [] - Spree::MailMethod.create!( - environment: Rails.env, - preferred_mails_from: 'spree@example.com' - ) end describe "for customers" do diff --git a/spec/models/proxy_order_spec.rb b/spec/models/proxy_order_spec.rb index a7170c5795..ec6b368bd7 100644 --- a/spec/models/proxy_order_spec.rb +++ b/spec/models/proxy_order_spec.rb @@ -23,6 +23,7 @@ describe ProxyOrder, type: :model do let(:order) { create(:completed_order_with_totals) } it "returns true and sets canceled_at to the current time, and cancels the order" do + expect(Spree::OrderMailer).to receive(:cancel_email) { double(:email, deliver: true) } expect(proxy_order.cancel).to be true expect(proxy_order.reload.canceled_at).to be_within(5.seconds).of Time.now expect(order.reload.state).to eq 'canceled' @@ -89,8 +90,11 @@ describe ProxyOrder, type: :model do end context "and the order has already been cancelled" do - before { while !order.completed? do break unless order.next! end } - before { order.cancel } + before do + allow(Spree::OrderMailer).to receive(:cancel_email) { double(:email, deliver: true) } + while !order.completed? do break unless order.next! end + order.cancel + end it "returns true, clears canceled_at and resumes the order" do expect(proxy_order.resume).to be true @@ -126,8 +130,11 @@ describe ProxyOrder, type: :model do end context "and the order has been cancelled" do - before { while !order.completed? do break unless order.next! end } - before { order.cancel } + before do + allow(Spree::OrderMailer).to receive(:cancel_email) { double(:email, deliver: true) } + while !order.completed? do break unless order.next! end + order.cancel + end it "returns false and does nothing" do expect(proxy_order.resume).to eq false