From 97e8b660bb14bb7ad987b835ff4ff3fee0f1a321 Mon Sep 17 00:00:00 2001 From: "Chris Baudouin, Jr" Date: Fri, 16 Oct 2020 23:58:31 -0400 Subject: [PATCH] feat(Messages): Adds checked in message trigger --- app/models/message.rb | 1 + app/models/questionnaire.rb | 6 ++++++ test/models/questionnaire_test.rb | 15 +++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/app/models/message.rb b/app/models/message.rb index a25dfec09..6fbbb92c0 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -38,6 +38,7 @@ class Message < ApplicationRecord "questionnaire.rsvp_confirmed" => "Questionnaire Status: RSVP Confirmed", "questionnaire.rsvp_denied" => "Questionnaire Status: RSVP Denied", "questionnaire.rsvp_reminder" => "Questionnaire: RSVP Reminder", + "questionnaire.checked-in" => "Questionnaire: Checked in", "user.24hr_incomplete_application" => "User: Incomplete application (24 hours later)", "bus_list.new_captain_confirmation" => "Bus List: New captain confirmation", "bus_list.notes_update" => "Bus List: Updated notes (manually triggered)" diff --git a/app/models/questionnaire.rb b/app/models/questionnaire.rb index be54bc1fe..310d6c6d1 100644 --- a/app/models/questionnaire.rb +++ b/app/models/questionnaire.rb @@ -11,6 +11,7 @@ class Questionnaire < ApplicationRecord after_create :queue_triggered_email_create after_update :queue_triggered_email_update after_update :queue_triggered_email_rsvp_reminder + after_update :queue_triggered_email_checked_in after_save :update_school_questionnaire_count after_destroy :update_school_questionnaire_count @@ -257,6 +258,11 @@ def queue_triggered_email_create Message.queue_for_trigger("questionnaire.#{acc_status}", user_id) end + def queue_triggered_email_checked_in + return unless saved_change_to_checked_in_at && checked_in? + Message.queue_for_trigger("questionnaire.checked-in", user_id) + end + def queue_triggered_email_rsvp_reminder return unless saved_change_to_acc_status? && acc_status == "accepted" diff --git a/test/models/questionnaire_test.rb b/test/models/questionnaire_test.rb index c1d0ea6c1..78ef68293 100644 --- a/test/models/questionnaire_test.rb +++ b/test/models/questionnaire_test.rb @@ -488,6 +488,21 @@ class QuestionnaireTest < ActiveSupport::TestCase create(:questionnaire, acc_status: "pending") end end + + should "send triggered email on checked in" do + create(:message, trigger: "questionnaire.checked-in") + assert_difference "enqueued_jobs.size", 1 do + create(:questionnaire, checked_in_at: Time.now) + end + end + + should "not send triggered email on checked out" do + create(:message, trigger: "questionnaire.checked-in") + questionnaire = create(:questionnaire, checked_in_at: Time.now) + assert_difference "enqueued_jobs.size", 0 do + questionnaire.update_attribute(:checked_in_at, nil) + end + end end should "clean up bus-related fields when changing RSVP" do