spec/unit/imap/backup/downloader_spec.rb in imap-backup-2.1.1 vs spec/unit/imap/backup/downloader_spec.rb in imap-backup-2.2.0

- old
+ new

@@ -5,40 +5,40 @@ let(:message) { {"RFC822" => "blah"} } let(:folder) do instance_double( Imap::Backup::Account::Folder, fetch: message, - name: "folder" + name: "folder", + uids: folder_uids ) end let(:folder_uids) { %w(111 222 333) } let(:serializer) do - instance_double(Imap::Backup::Serializer::Mbox, save: nil) + instance_double(Imap::Backup::Serializer::Mbox, save: nil, uids: ["222"]) end - let(:serializer_uids) { ["222"] } - 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 "with fetched messages" do - it "are saved" do - expect(serializer).to have_received(:save).with("111", message) + specify "are saved" do + expect(serializer).to receive(:save).with("111", message) + + subject.run end end context "with messages which are already present" do specify "are skipped" do - expect(serializer).to_not have_received(:save).with("222", anything) + expect(serializer).to_not receive(:save).with("222", anything) + + subject.run end end context "with failed fetches" do specify "are skipped" do - expect(serializer).to_not have_received(:save).with("333", anything) + allow(folder).to receive(:fetch).with("333") { nil } + expect(serializer).to_not receive(:save).with("333", anything) + + subject.run end end end end