diff --git a/CHANGELOG.md b/CHANGELOG.md index ca237464..bfe3a60f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ ### Bugs Fixed +* [#947](https://github.com/toptal/chewy/pull/947): Fix intermittent time-based failure in delayed sidekiq spec. ([@mjankowski][]) + ## 7.5.1 (2024-01-30) ### New Features diff --git a/spec/chewy/strategy/delayed_sidekiq_spec.rb b/spec/chewy/strategy/delayed_sidekiq_spec.rb index c0d43e57..ae7a07dc 100644 --- a/spec/chewy/strategy/delayed_sidekiq_spec.rb +++ b/spec/chewy/strategy/delayed_sidekiq_spec.rb @@ -47,7 +47,7 @@ expect(Sidekiq::Client).to receive(:push).with( hash_including( 'queue' => 'chewy', - 'at' => (Time.current.to_i.ceil(-1) + 2.seconds).to_i, + 'at' => expected_at_time.to_i, 'class' => Chewy::Strategy::DelayedSidekiq::Worker, 'args' => ['CitiesIndex', an_instance_of(Integer)] ) @@ -62,6 +62,11 @@ end end end + + def expected_at_time + target = described_class::Scheduler::DEFAULT_LATENCY.seconds.from_now.to_i + target - (target % described_class::Scheduler::DEFAULT_LATENCY) + described_class::Scheduler::DEFAULT_MARGIN.seconds + end end context 'with custom config' do