Stub or provide mailer as appropriate

This commit is contained in:
Rob Harrington
2017-11-10 15:02:36 +11:00
parent ca1485f121
commit c94badbf36
3 changed files with 14 additions and 8 deletions

View File

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

View File

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

View File

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