debian-mirror-gitlab/spec/support/shared_examples/throttled_touch.rb

21 lines
656 B
Ruby
Raw Normal View History

2018-03-17 18:26:18 +05:30
shared_examples_for 'throttled touch' do
describe '#touch' do
it 'updates the updated_at timestamp' do
Timecop.freeze do
subject.touch
2018-11-08 19:23:39 +05:30
expect(subject.updated_at).to be_like_time(Time.zone.now)
2018-03-17 18:26:18 +05:30
end
end
it 'updates the object at most once per minute' do
first_updated_at = Time.zone.now - (ThrottledTouch::TOUCH_INTERVAL * 2)
second_updated_at = Time.zone.now - (ThrottledTouch::TOUCH_INTERVAL * 1.5)
Timecop.freeze(first_updated_at) { subject.touch }
Timecop.freeze(second_updated_at) { subject.touch }
2018-11-08 19:23:39 +05:30
expect(subject.updated_at).to be_like_time(first_updated_at)
2018-03-17 18:26:18 +05:30
end
end
end