mirror of
https://github.com/discourse/discourse.git
synced 2025-09-06 10:50:21 +08:00
FEATURE: remove the timecop gem
We should only have one way of mocking time, misuse of timecop was causing build stability issues
This commit is contained in:
parent
40174962e2
commit
045a2abcec
35 changed files with 459 additions and 473 deletions
|
@ -113,63 +113,60 @@ RSpec.describe TopicTimer, type: :model do
|
|||
|
||||
describe 'when #execute_at value is changed' do
|
||||
it 'reschedules the job' do
|
||||
Timecop.freeze do
|
||||
topic_timer
|
||||
freeze_time
|
||||
topic_timer
|
||||
|
||||
Jobs.expects(:cancel_scheduled_job).with(
|
||||
:toggle_topic_closed, topic_timer_id: topic_timer.id
|
||||
)
|
||||
Jobs.expects(:cancel_scheduled_job).with(
|
||||
:toggle_topic_closed, topic_timer_id: topic_timer.id
|
||||
)
|
||||
|
||||
Jobs.expects(:enqueue_at).with(
|
||||
3.days.from_now, :toggle_topic_closed,
|
||||
topic_timer_id: topic_timer.id,
|
||||
state: true
|
||||
)
|
||||
Jobs.expects(:enqueue_at).with(
|
||||
3.days.from_now, :toggle_topic_closed,
|
||||
topic_timer_id: topic_timer.id,
|
||||
state: true
|
||||
)
|
||||
|
||||
topic_timer.update!(execute_at: 3.days.from_now, created_at: Time.zone.now)
|
||||
end
|
||||
topic_timer.update!(execute_at: 3.days.from_now, created_at: Time.zone.now)
|
||||
end
|
||||
|
||||
describe 'when execute_at is smaller than the current time' do
|
||||
it 'should enqueue the job immediately' do
|
||||
Timecop.freeze do
|
||||
topic_timer
|
||||
freeze_time
|
||||
topic_timer
|
||||
|
||||
Jobs.expects(:enqueue_at).with(
|
||||
Time.zone.now, :toggle_topic_closed,
|
||||
topic_timer_id: topic_timer.id,
|
||||
state: true
|
||||
)
|
||||
Jobs.expects(:enqueue_at).with(
|
||||
Time.zone.now, :toggle_topic_closed,
|
||||
topic_timer_id: topic_timer.id,
|
||||
state: true
|
||||
)
|
||||
|
||||
topic_timer.update!(
|
||||
execute_at: Time.zone.now - 1.hour,
|
||||
created_at: Time.zone.now - 2.hour
|
||||
)
|
||||
end
|
||||
topic_timer.update!(
|
||||
execute_at: Time.zone.now - 1.hour,
|
||||
created_at: Time.zone.now - 2.hour
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when user is changed' do
|
||||
it 'should update the job' do
|
||||
Timecop.freeze do
|
||||
topic_timer
|
||||
freeze_time
|
||||
topic_timer
|
||||
|
||||
Jobs.expects(:cancel_scheduled_job).with(
|
||||
:toggle_topic_closed, topic_timer_id: topic_timer.id
|
||||
)
|
||||
Jobs.expects(:cancel_scheduled_job).with(
|
||||
:toggle_topic_closed, topic_timer_id: topic_timer.id
|
||||
)
|
||||
|
||||
admin = Fabricate(:admin)
|
||||
admin = Fabricate(:admin)
|
||||
|
||||
Jobs.expects(:enqueue_at).with(
|
||||
topic_timer.execute_at,
|
||||
:toggle_topic_closed,
|
||||
topic_timer_id: topic_timer.id,
|
||||
state: true
|
||||
)
|
||||
Jobs.expects(:enqueue_at).with(
|
||||
topic_timer.execute_at,
|
||||
:toggle_topic_closed,
|
||||
topic_timer_id: topic_timer.id,
|
||||
state: true
|
||||
)
|
||||
|
||||
topic_timer.update!(user: admin)
|
||||
end
|
||||
topic_timer.update!(user: admin)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue