From 8f5233a7bf68b207ef0a0694fd07dd3df6b4e43c Mon Sep 17 00:00:00 2001
From: Joffrey JAFFEUX <j.jaffeux@gmail.com>
Date: Wed, 17 Feb 2021 10:52:49 +0100
Subject: [PATCH] DEV: adds within_one_minute time matcher (#12109)

---
 spec/models/topic_spec.rb    |  2 +-
 spec/support/time_matcher.rb | 11 ++++++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/spec/models/topic_spec.rb b/spec/models/topic_spec.rb
index 661ffd24f22..169a2d5813c 100644
--- a/spec/models/topic_spec.rb
+++ b/spec/models/topic_spec.rb
@@ -1629,7 +1629,7 @@ describe Topic do
 
             expect(topic_timer.user).to eq(Discourse.system_user)
             expect(topic_timer.topic).to eq(topic)
-            expect(topic_timer.execute_at).to be_within_one_second_of(now + 5.hours)
+            expect(topic_timer.execute_at).to be_within_one_minute_of(now + 5.hours)
           end
 
           describe 'when topic is already closed' do
diff --git a/spec/support/time_matcher.rb b/spec/support/time_matcher.rb
index 360e3eef8b5..5e2732d620b 100644
--- a/spec/support/time_matcher.rb
+++ b/spec/support/time_matcher.rb
@@ -2,13 +2,22 @@
 
 RSpec::Matchers.define :be_within_one_second_of do |expected_time|
   match do |actual_time|
-    (actual_time - expected_time).abs <= 1
+    (actual_time - expected_time).abs < 1
   end
   failure_message do |actual_time|
     "#{actual_time} is not within 1 second of #{expected_time}"
   end
 end
 
+RSpec::Matchers.define :be_within_one_minute_of do |expected_time|
+  match do |actual_time|
+    (actual_time - expected_time).abs < 60
+  end
+  failure_message do |actual_time|
+    "#{actual_time} is not within 1 minute of #{expected_time}"
+  end
+end
+
 RSpec::Matchers.define :eq_time do |expected_time|
   match do |actual_time|
     (actual_time - expected_time).abs < 0.001