mirror of
https://github.com/discourse/discourse.git
synced 2025-05-31 08:48:00 +08:00
FEATURE: navigate to first post and auto bump category settings
### navigate_to_first_post_after_read setting for categories When enabled on categories logged on users will return to OP after reading the entire category. (useful for documentation categories) ### num_auto_bump_daily Set a number of topics that will automatically bump daily on a category. - Every 15 minutes we will check if any category has this setting - Categories with the setting are shuffled - We exclude pinned, closed, category description and archived topics - Maximum of 1 topic for the list of categories is bumped till limit reached per category - We always try to bump oldest first - Limit is elastic using a RateLimiter that ensures that we only bump N per day Also some minor organisation on category settings Froze strings on category.rb
This commit is contained in:
@ -684,4 +684,44 @@ describe Category do
|
||||
it { expect(category.reload.require_reply_approval?).to eq(true) }
|
||||
end
|
||||
end
|
||||
|
||||
describe 'auto bump' do
|
||||
before do
|
||||
RateLimiter.enable
|
||||
end
|
||||
|
||||
after do
|
||||
RateLimiter.disable
|
||||
end
|
||||
|
||||
it 'should correctly automatically bump topics' do
|
||||
freeze_time 1.second.ago
|
||||
category = Fabricate(:category)
|
||||
category.clear_auto_bump_cache!
|
||||
|
||||
_post1 = create_post(category: category)
|
||||
_post2 = create_post(category: category)
|
||||
_post3 = create_post(category: category)
|
||||
|
||||
time = 1.month.from_now
|
||||
freeze_time time
|
||||
|
||||
expect(category.auto_bump_topic!).to eq(false)
|
||||
expect(Topic.where(bumped_at: time).count).to eq(0)
|
||||
|
||||
category.num_auto_bump_daily = 2
|
||||
category.save!
|
||||
|
||||
expect(category.auto_bump_topic!).to eq(true)
|
||||
expect(Topic.where(bumped_at: time).count).to eq(1)
|
||||
|
||||
expect(category.auto_bump_topic!).to eq(true)
|
||||
expect(Topic.where(bumped_at: time).count).to eq(2)
|
||||
|
||||
expect(category.auto_bump_topic!).to eq(false)
|
||||
expect(Topic.where(bumped_at: time).count).to eq(2)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
Reference in New Issue
Block a user