Sha256: 611bfe23e8dd4e24493f01c1e36a315c94e0530077205fb0ad1eeeff582caa4c

Contents?: true

Size: 1.33 KB

Versions: 11

Compression:

Stored size: 1.33 KB

Contents

require 'spec_helper'

describe Sidekiq::Grouping::Redis do
  subject { Sidekiq::Grouping::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

11 entries across 11 versions & 1 rubygems

Version Path
sidekiq-grouping-1.1.0 spec/modules/redis_spec.rb
sidekiq-grouping-1.0.10 spec/modules/redis_spec.rb
sidekiq-grouping-1.0.9 spec/modules/redis_spec.rb
sidekiq-grouping-1.0.8 spec/modules/redis_spec.rb
sidekiq-grouping-1.0.7 spec/modules/redis_spec.rb
sidekiq-grouping-1.0.6 spec/modules/redis_spec.rb
sidekiq-grouping-1.0.4 spec/modules/redis_spec.rb
sidekiq-grouping-1.0.3 spec/modules/redis_spec.rb
sidekiq-grouping-1.0.2 spec/modules/redis_spec.rb
sidekiq-grouping-1.0.1 spec/modules/redis_spec.rb
sidekiq-grouping-0.0.6 spec/modules/redis_spec.rb