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
38
38
"questionnaire.rsvp_confirmed" => "Questionnaire Status: RSVP Confirmed" ,
39
39
"questionnaire.rsvp_denied" => "Questionnaire Status: RSVP Denied" ,
40
40
"questionnaire.rsvp_reminder" => "Questionnaire: RSVP Reminder" ,
41
+ "questionnaire.checked-in" => "Questionnaire: Checked in" ,
41
42
"user.24hr_incomplete_application" => "User: Incomplete application (24 hours later)" ,
42
43
"bus_list.new_captain_confirmation" => "Bus List: New captain confirmation" ,
43
44
"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
11
11
after_create :queue_triggered_email_create
12
12
after_update :queue_triggered_email_update
13
13
after_update :queue_triggered_email_rsvp_reminder
14
+ after_update :queue_triggered_email_checked_in
14
15
after_save :update_school_questionnaire_count
15
16
after_destroy :update_school_questionnaire_count
16
17
@@ -257,6 +258,11 @@ def queue_triggered_email_create
257
258
Message . queue_for_trigger ( "questionnaire.#{ acc_status } " , user_id )
258
259
end
259
260
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
+
260
266
def queue_triggered_email_rsvp_reminder
261
267
return unless saved_change_to_acc_status? && acc_status == "accepted"
262
268
Original file line number Diff line number Diff line change @@ -488,6 +488,21 @@ class QuestionnaireTest < ActiveSupport::TestCase
488
488
create ( :questionnaire , acc_status : "pending" )
489
489
end
490
490
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
491
506
end
492
507
493
508
should "clean up bus-related fields when changing RSVP" do
You can’t perform that action at this time.
0 commit comments