diff --git a/spec/fixtures/emails/valid_reply.cooked b/spec/fixtures/emails/valid_reply.cooked
index d622863da..4bce79ad1 100644
--- a/spec/fixtures/emails/valid_reply.cooked
+++ b/spec/fixtures/emails/valid_reply.cooked
@@ -1,3 +1,4 @@
-
I could not disagree more. I am obviously biased but adventure time is the greatest show ever created. Everyone should watch it.
+I could not disagree more. I am obviously biased but adventure time is the
+greatest show ever created. Everyone should watch it.
-- Jake out
+
diff --git a/spec/jobs/poll_mailbox_spec.rb b/spec/jobs/poll_mailbox_spec.rb
index 4875ead98..a96e30916 100644
--- a/spec/jobs/poll_mailbox_spec.rb
+++ b/spec/jobs/poll_mailbox_spec.rb
@@ -67,7 +67,7 @@ describe Jobs::PollMailbox do
Jobs::PollMailbox.expects(:handle_failure).never
end
- describe "processing email B" do
+ describe "processing emails" do
let(:category) { Fabricate(:category) }
let(:user) { Fabricate(:user) }
@@ -82,11 +82,11 @@ describe Jobs::PollMailbox do
user.save
end
- describe "valid incoming email" do
+ describe "a valid incoming email" do
let(:email) { MockPop3EmailObject.new fixture_file('emails/valid_incoming.eml')}
let(:expected_post) { fixture_file('emails/valid_incoming.cooked') }
- it "posts a new topic with the correct content" do
+ it "posts a new topic" do
expect_success
poller.handle_mail(email)
@@ -100,7 +100,7 @@ describe Jobs::PollMailbox do
end
end
- describe "valid reply" do
+ describe "a valid reply" do
let(:email) { MockPop3EmailObject.new fixture_file('emails/valid_reply.eml')}
let(:expected_post) { fixture_file('emails/valid_reply.cooked')}
let(:topic) { Fabricate(:topic) }
@@ -111,28 +111,37 @@ describe Jobs::PollMailbox do
EmailLog.create(to_address: 'jake@email.example.com',
email_type: 'user_posted',
reply_key: '59d8df8370b7e95c5a49fbf86aeb2c93',
+ user: user,
post: first_post,
topic: topic)
end
- pending "creates a new post with the correct content" do
+ it "creates a new post" do
expect_success
poller.handle_mail(email)
- new_post = Post.where(topic: topic, post_number: 2)
+ new_post = Post.find_by(topic: topic, post_number: 2)
assert new_post.present?
-
assert_equal expected_post.strip, new_post.cooked.strip
assert email.deleted?
end
end
+ describe "without an email log" do
+ let(:email) { MockPop3EmailObject.new fixture_file('emails/valid_reply.eml')}
+ it "handles an EmailLogNotFound error" do
+ poller.expects(:handle_failure).with { |mail_string, ex| ex.is_a? Email::Receiver::EmailLogNotFound }
+
+ poller.handle_mail(email)
+ assert email.deleted?
+ end
+ end
end
- describe "processing email" do
+ describe "processing email A" do
let!(:receiver) { mock }
let!(:email_string) { fixture_file("emails/valid_incoming.eml") }