FEATURE: do not bump topics when retroactively closing (#23115)

The category feature that automatically closes topics does it silently

This amends it so `rake topics:apply_autoclose` which does retroactive
closing will also do so silently.
This commit is contained in:
Sam 2023-08-16 11:20:47 +10:00 committed by GitHub
parent f3cc294470
commit e654edf844
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 1 deletions

View File

@ -20,7 +20,7 @@ def close_old_topics(category)
end
topics.find_each do |topic|
topic.update_status("closed", true, Discourse.system_user)
topic.update_status("closed", true, Discourse.system_user, { silent: true })
RakeHelpers.print_status_with_label(" closing old topics: ", topics_closed += 1, total)
end
end

31
spec/tasks/topics_spec.rb Normal file
View File

@ -0,0 +1,31 @@
# frozen_string_literal: true
RSpec.describe "Post rake tasks" do
fab!(:post) { Fabricate(:post, raw: "The quick brown fox jumps over the lazy dog") }
let(:topic) { post.topic }
let(:category) { topic.category }
before do
Rake::Task.clear if defined?(Rake::Task)
Discourse::Application.load_tasks
STDOUT.stubs(:write)
end
describe "topics:apply_autoclose" do
it "should close topics silently" do
category.auto_close_hours = 1
category.save!
original_bumped_at = topic.bumped_at
freeze_time 2.hours.from_now
Rake::Task["topics:apply_autoclose"].invoke
topic.reload
expect(topic.closed).to eq(true)
expect(topic.bumped_at).to eq_time(original_bumped_at)
end
end
end