From e616fbfd425f838ca83fe01c3adf10e6b8e5a934 Mon Sep 17 00:00:00 2001 From: Lin Jen-Shin Date: Fri, 24 Jun 2016 16:05:05 +0800 Subject: [PATCH] Only return the address if incoming emails is enabled: Feedback from: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3363#note_12669123 --- app/models/project.rb | 6 ++++-- spec/models/project_spec.rb | 28 ++++++++++++++++++++-------- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/models/project.rb b/app/models/project.rb index 822d6489112..ad2a3ec6cf8 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 407efc9f966..5d41bc2d38c 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 - expect(project.new_issue_address(user)).to eq(address) + 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) + 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