From b302deb7a3524c786bb54d82a97f509ca88ee2d6 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Wed, 26 Apr 2017 12:12:55 +1000 Subject: [PATCH] Add UserMailer specs adapted from Spree code --- spec/mailers/user_mailer_spec.rb | 35 +++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index 97e0eb4430..5e389b71bf 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' describe Spree::UserMailer do let(:user) { build(:user) } - + after do ActionMailer::Base.deliveries.clear end @@ -17,4 +17,37 @@ describe Spree::UserMailer do Spree::UserMailer.signup_confirmation(user).deliver ActionMailer::Base.deliveries.count.should == 1 end + + # adapted from https://github.com/spree/spree_auth_devise/blob/70737af/spec/mailers/user_mailer_spec.rb + describe '#reset_password_instructions' do + describe 'message contents' do + before do + @message = described_class.reset_password_instructions(user) + end + + context 'subject includes' do + it 'translated devise instructions' do + expect(@message.subject).to include "Password Reset Instructions" + end + + it 'Spree site name' do + expect(@message.subject).to include Spree::Config[:site_name] + end + end + + context 'body includes' do + it 'password reset url' do + expect(@message.body.raw_source).to include root_url + "user/spree_user/password/edit" + end + end + end + + describe 'legacy support for User object' do + it 'sends an email' do + expect do + Spree::UserMailer.reset_password_instructions(user).deliver + end.to change(ActionMailer::Base.deliveries, :size).by(1) + end + end + end end