From 521b0f4ba7467e03cf57a14f0b969d8c85f8a86e Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Thu, 9 Jul 2015 17:50:33 -0500 Subject: [PATCH] VRFS-3300 : Reminder mails on user mailer. Also add tests to spec. --- ruby/lib/jam_ruby/app/mailers/user_mailer.rb | 30 ++++++++----- .../scheduled_session_reminder.html.erb | 10 ----- .../scheduled_session_reminder.text.erb | 6 --- .../scheduled_session_reminder_day.html.erb | 18 ++++++++ .../scheduled_session_reminder_day.text.erb | 8 ++++ ...heduled_session_reminder_upcoming.html.erb | 17 +++++++ ...heduled_session_reminder_upcoming.text.erb | 10 +++++ ruby/spec/mailers/user_mailer_spec.rb | 44 ++++++++++++++++++- 8 files changed, 116 insertions(+), 27 deletions(-) delete mode 100644 ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.html.erb delete mode 100644 ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.text.erb create mode 100644 ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_day.html.erb create mode 100644 ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_day.text.erb create mode 100644 ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_upcoming.html.erb create mode 100644 ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_upcoming.text.erb diff --git a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb index 46275db4a..40d5480f0 100644 --- a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb +++ b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb @@ -182,7 +182,7 @@ email = user.email subject = "Your band has a new follower on JamKazam" unique_args = {:type => "new_band_follower"} - + @body = msg sendgrid_category "Notification" sendgrid_unique_args :type => unique_args[:type] @@ -390,13 +390,23 @@ end end - def scheduled_session_reminder(user, msg, session) + def scheduled_session_reminder_upcoming(user, session) + subject = "Your JamKazam session starts in 1 hour!" + unique_args = {:type => "scheduled_session_reminder_upcoming"} + send_scheduled_session_reminder(user, session, subject, unique_args) + end + + def scheduled_session_reminder_day(user, session) + subject = "JamKazam Session Reminder" + unique_args = {:type => "scheduled_session_reminder_day"} + send_scheduled_session_reminder(user, session, subject, unique_args) + end + + def send_scheduled_session_reminder(user, session, subject, unique_args) return if !user.subscribe_email email = user.email - subject = "Session Rescheduled" - unique_args = {:type => "scheduled_session_reminder"} - @body = msg + @user = user @session_name = session.name @session_date = session.pretty_scheduled_start(true) @session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session.id}/details" @@ -448,7 +458,7 @@ @sessions_and_latency = sessions_and_latency @title = 'New Scheduled Sessions Matched to You' - mail(:to => receiver.email, + mail(:to => receiver.email, :subject => EmailBatchScheduledSessions.subject) do |format| format.text format.html @@ -461,7 +471,7 @@ email = user.email subject = "A band that you follow has joined a session" unique_args = {:type => "band_session_join"} - + @body = msg @session_url = "#{APP_CONFIG.external_root_url}/sessions/#{session_id}" sendgrid_category "Notification" @@ -482,7 +492,7 @@ email = user.email subject = "A musician has saved a new recording on JamKazam" unique_args = {:type => "musician_recording_saved"} - + @body = msg sendgrid_category "Notification" sendgrid_unique_args :type => unique_args[:type] @@ -502,7 +512,7 @@ email = user.email subject = "A band has saved a new recording on JamKazam" unique_args = {:type => "band_recording_saved"} - + @body = msg sendgrid_category "Notification" sendgrid_unique_args :type => unique_args[:type] @@ -522,7 +532,7 @@ email = user.email subject = "You have been invited to join a band on JamKazam" unique_args = {:type => "band_invitation"} - + @body = msg sendgrid_category "Notification" sendgrid_unique_args :type => unique_args[:type] diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.html.erb deleted file mode 100644 index 8582bfdbe..000000000 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -<% provide(:title, 'Scheduled Session Reminder') %> - -

<%= @body %>

- -

- <%= @session_name %>
- <%= @session_date %> -

- -

View Session Details

\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.text.erb deleted file mode 100644 index 40ec73f65..000000000 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder.text.erb +++ /dev/null @@ -1,6 +0,0 @@ -<%= @body %> - -<%= @session_name %> -<%= @session_date %> - -See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_day.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_day.html.erb new file mode 100644 index 000000000..b72d3c133 --- /dev/null +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_day.html.erb @@ -0,0 +1,18 @@ +<% provide(:title, 'JamKazam Session Reminder') %> + + +
+Hi <%= @user.first_name %>, +
+
+
+ This is a reminder that your JamKazam session + <%= @session_name %> + is scheduled for tomorrow. We hope you have fun! +
+
+
+Best Regards, +
+Team JamKazam +
\ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_day.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_day.text.erb new file mode 100644 index 000000000..c3f0576bf --- /dev/null +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_day.text.erb @@ -0,0 +1,8 @@ +Hi <%= @user.first_name %>, + +This is a reminder that your JamKazam session <%=@session_name%> is scheduled for tomorrow. We hope you have fun! + +Best Regards, +Team JamKazam + +See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_upcoming.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_upcoming.html.erb new file mode 100644 index 000000000..4fbc59ace --- /dev/null +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_upcoming.html.erb @@ -0,0 +1,17 @@ +<% provide(:title, 'Your JamKazam session starts in 1 hour!') %> + +
+Hi <%= @user.first_name %>, +
+
+
+ This is a reminder that your JamKazam session + <%= @session_name %> + starts in 1 hour. We hope you have fun! +
+
+
+Best Regards, +
+Team JamKazam +
diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_upcoming.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_upcoming.text.erb new file mode 100644 index 000000000..70726a9e6 --- /dev/null +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/scheduled_session_reminder_upcoming.text.erb @@ -0,0 +1,10 @@ +Hi <%= @user.first_name %>, + +This is a reminder that your JamKazam session +<%=@session_name%> +starts in 1 hour. We hope you have fun! + +Best Regards, +Team JamKazam + +See session details at <%= @session_url %>. \ No newline at end of file diff --git a/ruby/spec/mailers/user_mailer_spec.rb b/ruby/spec/mailers/user_mailer_spec.rb index c3d041060..320615020 100644 --- a/ruby/spec/mailers/user_mailer_spec.rb +++ b/ruby/spec/mailers/user_mailer_spec.rb @@ -123,7 +123,7 @@ describe UserMailer do before(:each) do user.update_email = "my_new_email@jamkazam.com" - UserMailer.updating_email(user).deliver + UserMailer.updating_email(user).deliver end it { UserMailer.deliveries.length.should == 1 } @@ -137,6 +137,48 @@ describe UserMailer do it { mail.text_part.body.include?("to confirm your change in email").should be_true } end + describe "notifications" do + + let(:mail) { UserMailer.deliveries[0] } + let(:music_session) { FactoryGirl.create(:music_session) } + + it "should send upcoming email" do + user.update_email = "my_new_email@jamkazam.com" + UserMailer.scheduled_session_reminder_upcoming(music_session.creator, music_session).deliver + UserMailer.deliveries.length.should == 1 + + mail['from'].to_s.should == UserMailer::DEFAULT_SENDER + mail['to'].to_s.should == music_session.creator.email# rsvp_requests.first.user.email + mail.multipart?.should == true # because we send plain + htm + + # verify that the messages are correctly configured + mail.html_part.body.include?("This is a reminder that your JamKazam session").should be_true + mail.text_part.body.include?("This is a reminder that your JamKazam session").should be_true + mail.html_part.body.include?("starts in 1 hour").should be_true + mail.text_part.body.include?("starts in 1 hour").should be_true + + + end + + it "should send 1-day reminder" do + user.update_email = "my_new_email@jamkazam.com" + UserMailer.scheduled_session_reminder_day(music_session.creator, music_session).deliver + UserMailer.deliveries.length.should == 1 + + mail['from'].to_s.should == UserMailer::DEFAULT_SENDER + mail['to'].to_s.should == music_session.creator.email# rsvp_requests.first.user.email + mail.multipart?.should == true # because we send plain + htm + + # verify that the messages are correctly configured + mail.html_part.body.include?("This is a reminder that your JamKazam session").should be_true + mail.text_part.body.include?("This is a reminder that your JamKazam session").should be_true + mail.html_part.body.include?("is scheduled for tomorrow").should be_true + mail.text_part.body.include?("is scheduled for tomorrow").should be_true + + end + end + + # describe "sends new musicians email" do