Sha256: 92b60215def8cd3037397c7ad186cb020c7c363eecb1b6666f99cc0fb6b14893

Contents?: true

Size: 1.21 KB

Versions: 8

Compression:

Stored size: 1.21 KB

Contents

require "spec_helper"

describe Imap::Backup::Downloader do
  describe "#run" do
    let(:message) { {"RFC822" => "blah"} }
    let(:folder) do
      double("Imap::Backup::Account::Folder", fetch: message, name: "folder")
    end
    let(:folder_uids) { ["111", "222", "333"] }
    let(:serializer) { double("Imap::Backup::Serializer", save: nil) }
    let(:serializer_uids) { ["222"] }

    subject { described_class.new(folder, serializer) }

    before do
      allow(folder).to receive(:uids).and_return(folder_uids)
      allow(serializer).to receive(:uids).and_return(serializer_uids)
      allow(folder).to receive(:fetch).with("333").and_return(nil)
      subject.run
    end

    context "#run" do
      context "fetched messages" do
        it "are saved" do
          expect(serializer).to have_received(:save).with("111", message)
        end
      end

      context "messages which are already present" do
        specify "are skipped" do
          expect(serializer).to_not have_received(:save).with("222", anything)
        end
      end

      context "failed fetches" do
        specify "are skipped" do
          expect(serializer).to_not have_received(:save).with("333", anything)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
imap-backup-2.0.0 spec/unit/imap/backup/downloader_spec.rb
imap-backup-1.4.2 spec/unit/downloader_spec.rb
imap-backup-2.0.0.rc4 spec/unit/imap/backup/downloader_spec.rb
imap-backup-1.4.1 spec/unit/downloader_spec.rb
imap-backup-1.4.0 spec/unit/downloader_spec.rb
imap-backup-2.0.0.rc3 spec/unit/imap/backup/downloader_spec.rb
imap-backup-2.0.0.rc2 spec/unit/imap/backup/downloader_spec.rb
imap-backup-2.0.0.rc1 spec/unit/downloader_spec.rb