diff options
-rw-r--r-- | config/initializers/health_checks.rb | 24 | ||||
-rw-r--r-- | lib/health_checks/checks/days_ago_check.rb | 28 | ||||
-rw-r--r-- | lib/health_checks/checks/incoming_message_check.rb | 12 | ||||
-rw-r--r-- | lib/health_checks/checks/outgoing_message_check.rb | 12 | ||||
-rw-r--r-- | lib/health_checks/checks/user_signup_check.rb | 12 | ||||
-rw-r--r-- | spec/lib/health_checks/checks/days_ago_check_spec.rb | 66 | ||||
-rw-r--r-- | spec/lib/health_checks/checks/incoming_message_check_spec.rb | 26 | ||||
-rw-r--r-- | spec/lib/health_checks/checks/outgoing_message_check_spec.rb | 32 | ||||
-rw-r--r-- | spec/lib/health_checks/checks/user_signup_check_spec.rb | 26 |
9 files changed, 115 insertions, 123 deletions
diff --git a/config/initializers/health_checks.rb b/config/initializers/health_checks.rb index e9f8ced9f..7fd1d3dda 100644 --- a/config/initializers/health_checks.rb +++ b/config/initializers/health_checks.rb @@ -1,5 +1,23 @@ Rails.application.config.after_initialize do - HealthChecks.add HealthChecks::Checks::IncomingMessageCheck.new - HealthChecks.add HealthChecks::Checks::OutgoingMessageCheck.new - HealthChecks.add HealthChecks::Checks::UserSignupCheck.new + user_last_created = HealthChecks::Checks::DaysAgoCheck.new( + :failure_message => _('The last user was created over a day ago'), + :success_message => _('The last user was created in the last day')) do + User.last.created_at + end + + incoming_message_last_created = HealthChecks::Checks::DaysAgoCheck.new( + :failure_message => _('The last incoming message was created over a day ago'), + :success_message => _('The last incoming message was created in the last day')) do + IncomingMessage.last.created_at + end + + outgoing_message_last_created = HealthChecks::Checks::DaysAgoCheck.new( + :failure_message => _('The last outgoing message was created over a day ago'), + :success_message => _('The last outgoing message was created in the last day')) do + OutgoingMessage.last.created_at + end + + HealthChecks.add user_last_created + HealthChecks.add incoming_message_last_created + HealthChecks.add outgoing_message_last_created end diff --git a/lib/health_checks/checks/days_ago_check.rb b/lib/health_checks/checks/days_ago_check.rb new file mode 100644 index 000000000..793fff586 --- /dev/null +++ b/lib/health_checks/checks/days_ago_check.rb @@ -0,0 +1,28 @@ +module HealthChecks + module Checks + class DaysAgoCheck + include HealthChecks::HealthCheckable + + attr_reader :days, :subject + + def initialize(args = {}, &block) + @days = args.fetch(:days) { 1 } + @subject = block + super(args) + end + + def failure_message + "#{ super }: #{ subject.call }" + end + + def success_message + "#{ super }: #{ subject.call }" + end + + def check + subject.call >= days.days.ago + end + + end + end +end diff --git a/lib/health_checks/checks/incoming_message_check.rb b/lib/health_checks/checks/incoming_message_check.rb deleted file mode 100644 index fb6d36e25..000000000 --- a/lib/health_checks/checks/incoming_message_check.rb +++ /dev/null @@ -1,12 +0,0 @@ -module HealthChecks - module Checks - class IncomingMessageCheck - include HealthChecks::HealthCheckable - - def check - IncomingMessage.last.created_at >= 1.day.ago - end - - end - end -end diff --git a/lib/health_checks/checks/outgoing_message_check.rb b/lib/health_checks/checks/outgoing_message_check.rb deleted file mode 100644 index 26feb538b..000000000 --- a/lib/health_checks/checks/outgoing_message_check.rb +++ /dev/null @@ -1,12 +0,0 @@ -module HealthChecks - module Checks - class OutgoingMessageCheck - include HealthChecks::HealthCheckable - - def check - OutgoingMessage.last.created_at >= 1.day.ago - end - - end - end -end diff --git a/lib/health_checks/checks/user_signup_check.rb b/lib/health_checks/checks/user_signup_check.rb deleted file mode 100644 index 0c775332c..000000000 --- a/lib/health_checks/checks/user_signup_check.rb +++ /dev/null @@ -1,12 +0,0 @@ -module HealthChecks - module Checks - class UserSignupCheck - include HealthChecks::HealthCheckable - - def check - User.last.created_at >= 1.day.ago - end - - end - end -end diff --git a/spec/lib/health_checks/checks/days_ago_check_spec.rb b/spec/lib/health_checks/checks/days_ago_check_spec.rb new file mode 100644 index 000000000..33b4642cd --- /dev/null +++ b/spec/lib/health_checks/checks/days_ago_check_spec.rb @@ -0,0 +1,66 @@ +require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper') + +describe HealthChecks::Checks::DaysAgoCheck do + include HealthChecks::Checks + + it { should be_kind_of(HealthChecks::HealthCheckable) } + + it 'defaults to comparing to one day ago' do + check = HealthChecks::Checks::DaysAgoCheck.new + expect(check.days).to eq(1) + end + + it 'accepts a custom number of days' do + check = HealthChecks::Checks::DaysAgoCheck.new(:days => 4) + expect(check.days).to eq(4) + end + + describe :check do + + it 'is successful if the subject is in the last day' do + check = HealthChecks::Checks::DaysAgoCheck.new { Time.now } + expect(check.check).to be_true + end + + it 'fails if the subject is over a day ago' do + check = HealthChecks::Checks::DaysAgoCheck.new { 2.days.ago } + expect(check.check).to be_false + end + + end + + describe :failure_message do + + it 'includes the check subject in the default message' do + subject = 2.days.ago + check = HealthChecks::Checks::DaysAgoCheck.new { subject } + expect(check.failure_message).to include(subject.to_s) + end + + it 'includes the check subject in a custom message' do + params = { :failure_message => 'This check failed' } + subject = 2.days.ago + check = HealthChecks::Checks::DaysAgoCheck.new(params) { subject } + expect(check.failure_message).to include(subject.to_s) + end + + end + + describe :success_message do + + it 'includes the check subject in the default message' do + subject = Time.now + check = HealthChecks::Checks::DaysAgoCheck.new { subject } + expect(check.failure_message).to include(subject.to_s) + end + + it 'includes the check subject in a custom message' do + params = { :success_message => 'This check succeeded' } + subject = Time.now + check = HealthChecks::Checks::DaysAgoCheck.new(params) { subject } + expect(check.success_message).to include(subject.to_s) + end + + end + +end diff --git a/spec/lib/health_checks/checks/incoming_message_check_spec.rb b/spec/lib/health_checks/checks/incoming_message_check_spec.rb deleted file mode 100644 index 8d6105925..000000000 --- a/spec/lib/health_checks/checks/incoming_message_check_spec.rb +++ /dev/null @@ -1,26 +0,0 @@ -require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper') - -describe HealthChecks::Checks::IncomingMessageCheck do - include HealthChecks::Checks - - it { should be_kind_of(HealthChecks::HealthCheckable) } - - before(:each) do - @check = HealthChecks::Checks::IncomingMessageCheck.new - end - - describe :check do - - it 'is successful if the last incoming message was created in the last day' do - FactoryGirl.create(:incoming_message) - expect(@check.check).to be_true - end - - it 'fails if the last incoming message was created over a day ago' do - FactoryGirl.create(:incoming_message, :created_at => 28.days.ago) - expect(@check.check).to be_false - end - - end - -end
\ No newline at end of file diff --git a/spec/lib/health_checks/checks/outgoing_message_check_spec.rb b/spec/lib/health_checks/checks/outgoing_message_check_spec.rb deleted file mode 100644 index 74c0f30b9..000000000 --- a/spec/lib/health_checks/checks/outgoing_message_check_spec.rb +++ /dev/null @@ -1,32 +0,0 @@ -require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper') - -describe HealthChecks::Checks::OutgoingMessageCheck do - include HealthChecks::Checks - - it { should be_kind_of(HealthChecks::HealthCheckable) } - - before(:each) do - @check = HealthChecks::Checks::OutgoingMessageCheck.new - end - - describe :check do - - it 'is successful if the last incoming message was created in the last day' do - FactoryGirl.create(:info_request) - expect(@check.check).to be_true - end - - it 'fails if the last incoming message was created over a day ago' do - params = { :status => 'ready', - :message_type => 'followup', - :body => 'I want a review', - :what_doing => 'internal_review', - :info_request => FactoryGirl.create(:info_request), - :created_at => 30.days.ago } - FactoryGirl.create(:outgoing_message, params) - expect(@check.check).to be_false - end - - end - -end
\ No newline at end of file diff --git a/spec/lib/health_checks/checks/user_signup_check_spec.rb b/spec/lib/health_checks/checks/user_signup_check_spec.rb deleted file mode 100644 index b18684454..000000000 --- a/spec/lib/health_checks/checks/user_signup_check_spec.rb +++ /dev/null @@ -1,26 +0,0 @@ -require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper') - -describe HealthChecks::Checks::UserSignupCheck do - include HealthChecks::Checks - - it { should be_kind_of(HealthChecks::HealthCheckable) } - - before(:each) do - @check = HealthChecks::Checks::UserSignupCheck.new - end - - describe :check do - - it 'is successful if the last user was created in the last day' do - FactoryGirl.create(:user) - expect(@check.check).to be_true - end - - it 'fails if the last user was created over a day ago' do - FactoryGirl.create(:user, :created_at => 28.days.ago) - expect(@check.check).to be_false - end - - end - -end
\ No newline at end of file |