diff options
Diffstat (limited to 'spec/lib/gitlab/email/service_desk/custom_email_spec.rb')
-rw-r--r-- | spec/lib/gitlab/email/service_desk/custom_email_spec.rb | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/spec/lib/gitlab/email/service_desk/custom_email_spec.rb b/spec/lib/gitlab/email/service_desk/custom_email_spec.rb index bba1ca1c8be..bdf31567251 100644 --- a/spec/lib/gitlab/email/service_desk/custom_email_spec.rb +++ b/spec/lib/gitlab/email/service_desk/custom_email_spec.rb @@ -6,10 +6,9 @@ RSpec.describe Gitlab::Email::ServiceDesk::CustomEmail, feature_category: :servi let(:reply_key) { 'b7721fc7e8419911a8bea145236a0519' } let(:custom_email) { 'support@example.com' } let(:email_with_reply_key) { 'support+b7721fc7e8419911a8bea145236a0519@example.com' } + let_it_be(:project) { create(:project) } describe '.reply_address' do - let_it_be(:project) { create(:project) } - subject(:reply_address) { described_class.reply_address(nil, nil) } it { is_expected.to be nil } @@ -34,4 +33,38 @@ RSpec.describe Gitlab::Email::ServiceDesk::CustomEmail, feature_category: :servi end end end + + describe '.key_from_reply_address' do + let(:email) { email_with_reply_key } + + subject(:reply_address) { described_class.key_from_reply_address(email) } + + it { is_expected.to be nil } + + context 'with service_desk_setting' do + let_it_be_with_refind(:setting) do + create(:service_desk_setting, project: project, add_external_participants_from_cc: true) + end + + it { is_expected.to be nil } + + context 'with custom email' do + let!(:credential) { create(:service_desk_custom_email_credential, project: project) } + let!(:verification) { create(:service_desk_custom_email_verification, :finished, project: project) } + + before do + project.reset + setting.update!(custom_email: 'support@example.com', custom_email_enabled: true) + end + + it { is_expected.to eq reply_key } + end + end + + context 'without reply key' do + let(:email) { custom_email } + + it { is_expected.to be nil } + end + end end |