Sha256: 6a32af21334b1625a3d428568cadf79533dbbe97cf30bacbdf88e230c294dab8

Contents?: true

Size: 1.42 KB

Versions: 97

Compression:

Stored size: 1.42 KB

Contents

# frozen_string_literal: true

RSpec.describe Deimos::ActiveRecordConsume::BatchSlicer do
  describe '#slice' do
    let(:batch) do
      [
        Deimos::Message.new({ v: 1 }, nil, key: 'C'),
        Deimos::Message.new({ v: 123 }, nil, key: 'A'),
        Deimos::Message.new({ v: 999 }, nil, key: 'B'),
        Deimos::Message.new({ v: 456 }, nil, key: 'A'),
        Deimos::Message.new({ v: 2 }, nil, key: 'C'),
        Deimos::Message.new({ v: 3 }, nil, key: 'C')
      ]
    end

    it 'should slice a batch by key' do
      slices = described_class.slice(batch)

      expect(slices).
        to match([
                   match_array([
                                 Deimos::Message.new({ v: 1 }, nil, key: 'C'),
                                 Deimos::Message.new({ v: 123 }, nil, key: 'A'),
                                 Deimos::Message.new({ v: 999 }, nil, key: 'B')
                               ]),
                   match_array([
                                 Deimos::Message.new({ v: 456 }, nil, key: 'A'),
                                 Deimos::Message.new({ v: 2 }, nil, key: 'C')
                               ]),
                   match_array([
                                 Deimos::Message.new({ v: 3 }, nil, key: 'C')
                               ])
                 ])
    end

    it 'should handle empty batches' do
      slices = described_class.slice([])

      expect(slices).to be_empty
    end
  end
end

Version data entries

97 entries across 97 versions & 2 rubygems

Version Path
deimos-ruby-1.24.2 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.24.1 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.24.0 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.23.3 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.23.2 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.23.1.pre.beta6 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.23.1.pre.beta5 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.23.1.pre.beta4 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.23.1.pre.beta3 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.23.1.pre.beta2 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.23.1.pre.beta1 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.23.0 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.22.5 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.22.4 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.22.3 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.22.2 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.22.1 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.22 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.20.1 spec/active_record_consume/batch_slicer_spec.rb
deimos-ruby-1.20.0 spec/active_record_consume/batch_slicer_spec.rb