Sha256: acda021bf81c24168b33c41ec20d751430f77f65879dc6fd8fc120e262e9b9b0

Contents?: true

Size: 1016 Bytes

Versions: 2

Compression:

Stored size: 1016 Bytes

Contents

describe Imap::Backup::Uploader do
  subject { described_class.new(folder, serializer) }

  let(:folder) do
    instance_double(Imap::Backup::Account::Folder, uids: [2, 3], append: 99)
  end
  let(:serializer) do
    instance_double(
      Imap::Backup::Serializer::Mbox,
      uids: [1, 2],
      update_uid: nil
    )
  end

  describe "#run" do
    before do
      allow(serializer).to receive(:load).with(1) { "missing message" }
      allow(serializer).to receive(:load).with(2) { "existing message" }
      subject.run
    end

    context "with messages that are missing" do
      it "restores them" do
        expect(folder).to have_received(:append).with("missing message")
      end

      it "updates the local message id" do
        expect(serializer).to have_received(:update_uid).with(1, 99)
      end
    end

    context "with messages that are present on server" do
      it "does nothing" do
        expect(folder).to_not have_received(:append).with("existing message")
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
imap-backup-2.1.1 spec/unit/imap/backup/uploader_spec.rb
imap-backup-2.1.0 spec/unit/imap/backup/uploader_spec.rb