Sha256: 0c272ad81dd40e64c0e46b918500616dfac0fdbff11196c481ccae342065b237

Contents?: true

Size: 1.66 KB

Versions: 5

Compression:

Stored size: 1.66 KB

Contents

require "spec_helper"

describe Alephant::Publisher::Queue::SQSHelper::Archiver do
  let(:cache)    { instance_double(Alephant::Cache, :put => nil) }
  let(:queue)    { instance_double(AWS::SQS::Queue, :url => nil) }
  let(:msg_body) { { :Message => JSON.generate(msg_uri) } }
  let(:msg_uri)  { { :uri => "/content/asset/newsbeat" } }
  let(:message) do
    instance_double(
      "AWS::SQS::ReceivedMessage",
      :id    => "id",
      :md5   => "qux",
      :queue => queue,
      :body  => JSON.generate(msg_body)
    )
  end

  let(:opts) do
    {
      :log_archive_message => true,
      :async_store         => false
    }
  end

  let(:subject) { described_class.new(cache, opts) }

  describe "#see" do
    let(:time_now) { DateTime.parse("Feb 24 1981") }

    context "calls cache put with the correct params" do
      before(:each) do
        allow(DateTime).to receive(:now).and_return(time_now)
      end

      specify do
        expect(cache).to receive(:put).with(
          "archive/#{time_now.strftime('%d-%m-%Y_%H')}/id",
          message.body,
          :id        => message.id,
          :md5       => message.md5,
          :logged_at => time_now.to_s,
          :queue     => message.queue.url
        )
        subject.see(message)
      end
    end
  end

  describe "logging archive message" do
    context "enabled" do
      specify do
        subject.see(message)
        expect(message).to have_received(:body).twice
      end
    end

    context "disabled" do
      before(:each) do
        opts[:log_archive_message] = false
      end

      specify do
        subject.see(message)
        expect(message).to have_received(:body).once
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
alephant-publisher-queue-2.4.2 spec/alephant/publisher/queue/sqs_helper/archiver_spec.rb
alephant-publisher-queue-2.4.1 spec/alephant/publisher/queue/sqs_helper/archiver_spec.rb
alephant-publisher-queue-2.4.0 spec/alephant/publisher/queue/sqs_helper/archiver_spec.rb
alephant-publisher-queue-2.3.1 spec/alephant/publisher/queue/sqs_helper/archiver_spec.rb
alephant-publisher-queue-2.3.0 spec/alephant/publisher/queue/sqs_helper/archiver_spec.rb