summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/email/receiver_spec.rb
blob: f127e45ae6a9a4ab1effb1d37e782f2d83a2041b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require 'spec_helper'
require_relative 'email_shared_blocks'

describe Gitlab::Email::Receiver, lib: true do
  include_context :email_shared_context

  context "when we cannot find a capable handler" do
    let(:email_raw) { fixture_file('emails/valid_reply.eml').gsub(mail_key, "!!!") }

    it "raises an UnknownIncomingEmail error" do
      expect { receiver.execute }.to raise_error(Gitlab::Email::UnknownIncomingEmail)
    end

    context "and the email contains no references header" do
      let(:email_raw) { fixture_file("emails/auto_reply.eml").gsub(mail_key, "!!!") }

      it "raises an UnknownIncomingEmail error" do
        expect { receiver.execute }.to raise_error(Gitlab::Email::UnknownIncomingEmail)
      end
    end
  end

  context "when the email is blank" do
    let(:email_raw) { "" }

    it "raises an EmptyEmailError" do
      expect { receiver.execute }.to raise_error(Gitlab::Email::EmptyEmailError)
    end
  end
end