From 8acf3c088a5be3e35ad2bb6b5b74b4ebf32c00e4 Mon Sep 17 00:00:00 2001 From: Gopesh Tulsyan Date: Sun, 13 Jul 2014 11:55:42 +0530 Subject: [PATCH] Added test for email notification on conference dates and registration dates updates --- .../admin/conferences_controller_spec.rb | 21 ++++++++++++++++++- spec/factories/conferences.rb | 4 +++- spec/factories/email_settings.rb | 2 ++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/spec/controllers/admin/conferences_controller_spec.rb b/spec/controllers/admin/conferences_controller_spec.rb index d1845584..86523fc1 100644 --- a/spec/controllers/admin/conferences_controller_spec.rb +++ b/spec/controllers/admin/conferences_controller_spec.rb @@ -21,7 +21,6 @@ describe Admin::ConferenceController do it 'locates the requested conference' do patch :update, id: conference.short_title, conference: attributes_for(:conference, title: 'Example Con') - expect(assigns(:conference)).to eq(conference) end @@ -42,6 +41,26 @@ describe Admin::ConferenceController do expect(response).to redirect_to edit_admin_conference_path( conference.short_title) end + + it 'sends email notification on conference date update' do + mailer = double + allow(mailer).to receive(:deliver) + conference.email_settings = create(:email_settings) + patch :update, id: conference.short_title, conference: + attributes_for(:conference, start_date: Date.today + 2.days, end_date: Date.today + 4.days) + conference.reload + allow(Mailbot).to receive(:conference_date_update_mail).and_return(mailer) + end + + it 'sends email notification on conference registration date update' do + mailer = double + allow(mailer).to receive(:deliver) + conference.email_settings = create(:email_settings) + patch :update, id: conference.short_title, conference: + attributes_for(:conference, registration_start_date: Date.today + 2.days, registration_end_date: Date.today + 4.days) + conference.reload + allow(Mailbot).to receive(:conference_registration_date_update_mail).and_return(mailer) + end end context 'invalid attributes' do diff --git a/spec/factories/conferences.rb b/spec/factories/conferences.rb index 3b07782c..e4b6732f 100644 --- a/spec/factories/conferences.rb +++ b/spec/factories/conferences.rb @@ -8,7 +8,9 @@ FactoryGirl.define do timezone 'Amsterdam' contact_email 'admin@example.com' start_date Date.today - end_date Date.tomorrow + end_date Date.today + 6.days + registration_start_date Date.today + 3.days + registration_end_date Date.today + 5.days make_conference_public true venue end diff --git a/spec/factories/email_settings.rb b/spec/factories/email_settings.rb index a21238ac..ec4887ed 100644 --- a/spec/factories/email_settings.rb +++ b/spec/factories/email_settings.rb @@ -8,8 +8,10 @@ FactoryGirl.define do send_on_confirmed_without_registration false send_on_updated_conference_dates true send_on_updated_conference_registration_dates true + updated_conference_dates_template 'Sample Conference\n New Dates: January 17 - 21 2014' updated_conference_dates_subject 'Conference dates have been updated' updated_conference_registration_dates_subject 'Conference registration dates have been updated' + updated_conference_registration_dates_template 'Sample Conference\n New Dates: January 17 - 21 2014' registration_subject 'Lorem Ipsum Dolsum' registration_email_template 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit' end