From c35af5d7557311db9de80ef600bb0148787bb2f5 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Thu, 19 Dec 2013 11:24:21 -0500 Subject: [PATCH] FIX: When re-opening a topic that auto-closed, make sure it won't auto-close again --- app/models/topic_status_update.rb | 2 +- spec/integration/topic_auto_close_spec.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/models/topic_status_update.rb b/app/models/topic_status_update.rb index f5113b2a93..e166a46e56 100644 --- a/app/models/topic_status_update.rb +++ b/app/models/topic_status_update.rb @@ -22,7 +22,7 @@ TopicStatusUpdate = Struct.new(:topic, :user) do topic.update_column status.name, status.enabled? end - if status.manually_closing_topic? && topic.auto_close_at + if topic.auto_close_at && (status.reopening_topic? || status.manually_closing_topic?) topic.reload.set_auto_close(nil).save end diff --git a/spec/integration/topic_auto_close_spec.rb b/spec/integration/topic_auto_close_spec.rb index 9743363924..7f6c90aaf2 100644 --- a/spec/integration/topic_auto_close_spec.rb +++ b/spec/integration/topic_auto_close_spec.rb @@ -87,6 +87,14 @@ describe Topic do Then { scheduled_jobs_for(:close_topic).should have(2).jobs } end end + + context 'a topic that has been auto-closed' do + Given(:admin) { Fabricate(:admin) } + Given!(:auto_closed_topic) { Fabricate(:topic, user: admin, closed: true, auto_close_at: 1.day.ago, auto_close_user_id: admin.id, auto_close_started_at: 6.days.ago) } + When { auto_closed_topic.update_status('closed', false, admin) } + Then { auto_closed_topic.reload.auto_close_at.should be_nil } + And { auto_closed_topic.auto_close_started_at.should be_nil } + end end end end