Sha256: 83e6a2916baa6f6e0db2b9def5044d3d43535324f2fe181d78ea7b203b620655
Contents?: true
Size: 1017 Bytes
Versions: 2
Compression:
Stored size: 1017 Bytes
Contents
require "helper" require "flipper/adapters/sync/interval_synchronizer" RSpec.describe Flipper::Adapters::Sync::IntervalSynchronizer do let(:events) { [] } let(:synchronizer) { -> { events << described_class.now_ms } } let(:interval) { 10 } subject { described_class.new(synchronizer, interval: interval) } it 'synchronizes on first call' do expect(events.size).to be(0) subject.call expect(events.size).to be(1) end it "only invokes wrapped synchronizer every interval seconds" do now = described_class.now_ms subject.call events.clear # move time to one millisecond less than last sync + interval 1.upto(interval) do |i| allow(described_class).to receive(:now_ms).and_return(now + (i * 1_000) - 1) subject.call end expect(events.size).to be(0) # move time to last sync + interval in milliseconds allow(described_class).to receive(:now_ms).and_return(now + (interval * 1_000)) subject.call expect(events.size).to be(1) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
flipper-0.15.0 | spec/flipper/adapters/sync/interval_synchronizer_spec.rb |
flipper-0.14.0 | spec/flipper/adapters/sync/interval_synchronizer_spec.rb |