diff --git a/app/models/project.rb b/app/models/project.rb index 822d6489112f54a7d3be87b3c0a9df1587c1c310..ad2a3ec6cf84a4ed3b814df09474ee87e1f033d7 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -529,8 +529,10 @@ class Project < ActiveRecord::Base end def new_issue_address(author) - Gitlab::IncomingEmail.reply_address( - "#{path_with_namespace}+#{author.authentication_token}") + if Gitlab::IncomingEmail.enabled? + Gitlab::IncomingEmail.reply_address( + "#{path_with_namespace}+#{author.authentication_token}") + end end def build_commit_note(commit) diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 407efc9f966b14b70badab3965b4f45f63f91032..5d41bc2d38c274c17e6a18c5b4e3fefacb3aca10 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -130,18 +130,30 @@ describe Project, models: true do end describe "#new_issue_address" do - before do - stub_incoming_email_setting(address: "p+%{key}@gl.ab") - end - let(:project) { create(:empty_project, path: "somewhere") } let(:user) { create(:user) } - it 'returns the address to create a new issue' do - token = user.authentication_token - address = "p+#{project.namespace.path}/#{project.path}+#{token}@gl.ab" + context 'incoming email enabled' do + before do + stub_incoming_email_setting(enabled: true, address: "p+%{key}@gl.ab") + end + + it 'returns the address to create a new issue' do + token = user.authentication_token + address = "p+#{project.namespace.path}/#{project.path}+#{token}@gl.ab" - expect(project.new_issue_address(user)).to eq(address) + expect(project.new_issue_address(user)).to eq(address) + end + end + + context 'incoming email disabled' do + before do + stub_incoming_email_setting(enabled: false) + end + + it 'returns nil' do + expect(project.new_issue_address(user)).to be_nil + end end end