From ef1229d90084e59ab3f3ba9a93c94561d751aecb Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Wed, 29 Aug 2018 16:33:36 +0200 Subject: [PATCH] Check: set mode manual/auto before saving --- app/models/check.rb | 6 ++++++ test/models/check_test.rb | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/app/models/check.rb b/app/models/check.rb index c66e9b7..d4dc37f 100644 --- a/app/models/check.rb +++ b/app/models/check.rb @@ -55,6 +55,7 @@ class Check < ApplicationRecord validates :vendor, length: { maximum: 255 } before_save :reset_consecutive_failures + before_save :set_mode after_update :reset_notifications after_save :enqueue_sync @@ -128,4 +129,9 @@ class Check < ApplicationRecord self.consecutive_failures = 0 end + + def set_mode + return unless domain_changed? + self.mode = supported? ? :auto : :manual + end end diff --git a/test/models/check_test.rb b/test/models/check_test.rb index 1b29102..072a1fd 100644 --- a/test/models/check_test.rb +++ b/test/models/check_test.rb @@ -91,4 +91,14 @@ class CheckTest < ActiveSupport::TestCase check = build(:check, :ssl, domain: "domain.cn") assert check.supported? end + + test "set mode before saving" do + check = build(:check, domain: "domain.fr") + check.save! + assert check.auto? + + check.domain = "domain.xyz" + check.save! + assert check.mode? + end end