Sha256: 64f48b99e70ca017807f8c4b11c9e9756cac7f153b37095efe6c73720a84c72f
Contents?: true
Size: 1.79 KB
Versions: 7
Compression:
Stored size: 1.79 KB
Contents
# frozen_string_literal: true require "spec_helpers" describe Wayfarer::Redis::Barrier, redis: true do let(:url) { "https://example.com" } subject(:barrier) { Wayfarer::Redis::Barrier.new("batch") } describe "#redis_key" do it "returns the expected Redis key" do expect(barrier.redis_key).to eq("wayfarer-barrier-batch") end end describe "#reset!" do it "resets seen URLs" do barrier.seen?(url) barrier.reset! expect(barrier.seen?(url)).to be false end end describe "#seen?" do context "with seen URL" do before { barrier.seen?(url) } it "returns true" do expect(barrier.seen?(url)).to be(true) end end context "with unseen URL" do it "returns false" do expect(barrier.seen?(url)).to be(false) end end end describe "#peek" do let(:seen_urls) { %w[https://yahoo.com https://google.com] } let(:unseen_urls) { %w[https://w3c.org https://nasa.gov] } before do allow(Wayfarer::Redis::Version).to receive(:determine).and_return(redis_version) seen_urls.each do |url| barrier.seen?(url) end end context "Redis >= 6.2.0" do let(:redis_version) { [6, 2, 5] } it "returns membership" do urls = [*seen_urls, *unseen_urls] expect(barrier.peek(urls)).to eq([true, true, false, false]) end end context "Redis < 6.2.0" do let(:redis_version) { [2, 6, 10] } it "returns membership" do urls = [*seen_urls, *unseen_urls] expect(barrier.peek(urls)).to eq([true, true, false, false]) end end end describe "#unsee" do it "removes a seen URL" do barrier.seen?(url) expect { barrier.unsee(url) }.to change { barrier.seen?(url) }.to(false) end end end
Version data entries
7 entries across 7 versions & 1 rubygems