File tree Expand file tree Collapse file tree 3 files changed +22
-0
lines changed Expand file tree Collapse file tree 3 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -38,6 +38,7 @@ class Message < ApplicationRecord
3838 "questionnaire.rsvp_confirmed" => "Questionnaire Status: RSVP Confirmed" ,
3939 "questionnaire.rsvp_denied" => "Questionnaire Status: RSVP Denied" ,
4040 "questionnaire.rsvp_reminder" => "Questionnaire: RSVP Reminder" ,
41+ "questionnaire.checked-in" => "Questionnaire: Checked in" ,
4142 "user.24hr_incomplete_application" => "User: Incomplete application (24 hours later)" ,
4243 "bus_list.new_captain_confirmation" => "Bus List: New captain confirmation" ,
4344 "bus_list.notes_update" => "Bus List: Updated notes (manually triggered)"
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ class Questionnaire < ApplicationRecord
1111 after_create :queue_triggered_email_create
1212 after_update :queue_triggered_email_update
1313 after_update :queue_triggered_email_rsvp_reminder
14+ after_update :queue_triggered_email_checked_in
1415 after_save :update_school_questionnaire_count
1516 after_destroy :update_school_questionnaire_count
1617
@@ -257,6 +258,11 @@ def queue_triggered_email_create
257258 Message . queue_for_trigger ( "questionnaire.#{ acc_status } " , user_id )
258259 end
259260
261+ def queue_triggered_email_checked_in
262+ return unless saved_change_to_checked_in_at && checked_in?
263+ Message . queue_for_trigger ( "questionnaire.checked-in" , user_id )
264+ end
265+
260266 def queue_triggered_email_rsvp_reminder
261267 return unless saved_change_to_acc_status? && acc_status == "accepted"
262268
Original file line number Diff line number Diff line change @@ -488,6 +488,21 @@ class QuestionnaireTest < ActiveSupport::TestCase
488488 create ( :questionnaire , acc_status : "pending" )
489489 end
490490 end
491+
492+ should "send triggered email on checked in" do
493+ create ( :message , trigger : "questionnaire.checked-in" )
494+ assert_difference "enqueued_jobs.size" , 1 do
495+ create ( :questionnaire , checked_in_at : Time . now )
496+ end
497+ end
498+
499+ should "not send triggered email on checked out" do
500+ create ( :message , trigger : "questionnaire.checked-in" )
501+ questionnaire = create ( :questionnaire , checked_in_at : Time . now )
502+ assert_difference "enqueued_jobs.size" , 0 do
503+ questionnaire . update_attribute ( :checked_in_at , nil )
504+ end
505+ end
491506 end
492507
493508 should "clean up bus-related fields when changing RSVP" do
You can’t perform that action at this time.
0 commit comments