Revert "FIX: Topic Timer auto opening closed topics (#10524)"

This reverts commit 7cfd5f87ff.
This commit is contained in:
Guo Xiang Tan 2020-08-26 09:32:11 +08:00
parent 7cfd5f87ff
commit ffc5bb7278
No known key found for this signature in database
GPG Key ID: FBD110179AAC1F20
4 changed files with 41 additions and 36 deletions

View File

@ -463,15 +463,6 @@ class TopicsController < ApplicationController
options.merge!(category_id: params[:category_id]) if !params[:category_id].blank?
options.merge!(duration: params[:duration].to_i) if params[:duration].present?
# Be sure to close/open the topic when setting an auto-open/auto-close timer
if status_type == TopicTimer.types[:open]
topic.update_status('closed', true, current_user) if !topic.closed
end
if status_type == TopicTimer.types[:close]
topic.update_status('closed', false, current_user) if topic.closed
end
topic_status_update = topic.set_or_create_timer(
status_type,
params[:time],

View File

@ -127,6 +127,7 @@ class TopicTimer < ActiveRecord::Base
def schedule_auto_open_job(time)
return unless topic
topic.update_status('closed', true, user) if !topic.closed
Jobs.enqueue_at(time, :toggle_topic_closed,
topic_timer_id: id,
@ -136,6 +137,7 @@ class TopicTimer < ActiveRecord::Base
def schedule_auto_close_job(time)
return unless topic
topic.update_status('closed', false, user) if topic.closed
Jobs.enqueue_at(time, :toggle_topic_closed,
topic_timer_id: id,

View File

@ -138,7 +138,7 @@ RSpec.describe TopicTimer, type: :model do
end
end
describe 'when a topic has been deleted' do
describe 'when a open topic status update is created for an open topic' do
fab!(:topic) { Fabricate(:topic, closed: false) }
fab!(:topic_timer) do
Fabricate(:topic_timer,
@ -151,11 +151,46 @@ RSpec.describe TopicTimer, type: :model do
Jobs.run_immediately!
end
it 'should not queue the job' do
topic.trash!
it 'should close the topic' do
topic_timer
expect(topic.reload.closed).to eq(true)
end
expect(Jobs::ToggleTopicClosed.jobs).to eq([])
describe 'when topic has been deleted' do
it 'should not queue the job' do
topic.trash!
topic_timer
expect(Jobs::ToggleTopicClosed.jobs).to eq([])
end
end
end
describe 'when a close topic status update is created for a closed topic' do
fab!(:topic) { Fabricate(:topic, closed: true) }
fab!(:topic_timer) do
Fabricate(:topic_timer,
status_type: described_class.types[:close],
topic: topic
)
end
before do
Jobs.run_immediately!
end
it 'should open the topic' do
topic_timer
expect(topic.reload.closed).to eq(false)
end
describe 'when topic has been deleted' do
it 'should not queue the job' do
topic.trash!
topic_timer
expect(Jobs::ToggleTopicClosed.jobs).to eq([])
end
end
end

View File

@ -2925,29 +2925,6 @@ RSpec.describe TopicsController do
expect(response.body).to include('status_type')
end
end
it 'should close the topic when setting an auto-open timer' do
post "/t/#{topic.id}/timer.json", params: {
time: 24,
status_type: "open"
}
expect(response.status).to eq(200)
topic_status_update = TopicTimer.last
topic = topic_status_update.topic
expect(topic.closed).to eq(true)
end
it 'should open the topic when setting an auto-close timer' do
topic = Fabricate(:topic, user: user, closed: true)
post "/t/#{topic.id}/timer.json", params: {
time: 24,
status_type: "close"
}
expect(response.status).to eq(200)
topic_status_update = TopicTimer.last
topic = topic_status_update.topic
expect(topic.closed).to eq(false)
end
end
end