Sha256: d94637fcb17c054a80fed3b161f14807532d356ac55f95fd6b0aaa525105f546

Contents?: true

Size: 1.33 KB

Versions: 2

Compression:

Stored size: 1.33 KB

Contents

require 'spec_helper'

describe Sidekiq::Batching::Redis do
  subject { Sidekiq::Batching::Redis.new }

  let(:queue_name)    { "my_queue" }
  let(:key)           { "batching:#{queue_name}" }
  let(:unique_key)    { "batching:#{queue_name}:unique_messages" }

  describe "#push_msg" do
    it "adds message to queue" do
      subject.push_msg(queue_name, 'My message')
      expect(redis { |c| c.llen key }).to eq 1
      expect(redis { |c| c.lrange key, 0, 1 }).to eq ['My message']
      expect(redis { |c| c.smembers unique_key}).to eq []
    end

    it "remembers unique message if specified" do
      subject.push_msg(queue_name, 'My message', true)
      expect(redis { |c| c.smembers unique_key}).to eq ['My message']
    end
  end

  describe "#pluck" do
    it "removes messages from queue" do
      subject.push_msg(queue_name, "Message 1")
      subject.push_msg(queue_name, "Message 2")
      subject.pluck(queue_name, 2)
      expect(redis { |c| c.llen key }).to eq 0
    end

    it "forgets unique messages" do
      subject.push_msg(queue_name, "Message 1", true)
      subject.push_msg(queue_name, "Message 2", true)
      expect(redis { |c| c.scard unique_key }).to eq 2
      subject.pluck(queue_name, 2)
      expect(redis { |c| c.smembers unique_key }).to eq []
    end
  end

  private

  def redis(&block)
    Sidekiq.redis(&block)
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sidekiq-batching-0.0.5 spec/modules/redis_spec.rb
sidekiq-batching-0.0.4 spec/modules/redis_spec.rb