From a09983ae35713f5a2bbb100981116d31ce99826e Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 20 Jul 2020 12:26:25 +0000 Subject: Add latest changes from gitlab-org/gitlab@13-2-stable-ee --- .../lib/gitlab/email/service_desk_receiver_spec.rb | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 spec/lib/gitlab/email/service_desk_receiver_spec.rb (limited to 'spec/lib/gitlab/email/service_desk_receiver_spec.rb') diff --git a/spec/lib/gitlab/email/service_desk_receiver_spec.rb b/spec/lib/gitlab/email/service_desk_receiver_spec.rb new file mode 100644 index 00000000000..6ba58ad5e93 --- /dev/null +++ b/spec/lib/gitlab/email/service_desk_receiver_spec.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Gitlab::Email::ServiceDeskReceiver do + let(:email) { fixture_file('emails/service_desk_custom_address.eml') } + let(:receiver) { described_class.new(email) } + + context 'when the email contains a valid email address' do + before do + stub_service_desk_email_setting(enabled: true, address: 'support+%{key}@example.com') + end + + it 'finds the service desk key' do + handler = double(execute: true, metrics_event: true, metrics_params: true) + expected_params = [ + an_instance_of(Mail::Message), nil, + { service_desk_key: 'project_slug-project_key' } + ] + + expect(Gitlab::Email::Handler::ServiceDeskHandler) + .to receive(:new).with(*expected_params).and_return(handler) + + receiver.execute + end + end + + context 'when the email does not contain a valid email address' do + before do + stub_service_desk_email_setting(enabled: true, address: 'other_support+%{key}@example.com') + end + + it 'raises an error' do + expect { receiver.execute }.to raise_error(Gitlab::Email::UnknownIncomingEmail) + end + end +end -- cgit v1.2.3