Commit 902f49e2 authored by Felipe Artur's avatar Felipe Artur

Add license check for service desk

parent 152e5eda
......@@ -27,8 +27,7 @@ module EE
end
def service_desk_address
return nil unless ::Gitlab::EE::ServiceDesk.enabled?
return nil unless self.service_desk_enabled?
return nil unless service_desk_avaiable?
refresh_service_desk_key! if service_desk_mail_key.blank?
......@@ -37,14 +36,18 @@ module EE
end
def refresh_service_desk_key!
return unless ::Gitlab::EE::ServiceDesk.enabled?
return unless self.service_desk_enabled?
return unless service_desk_avaiable?
self.service_desk_mail_key = SentNotification.reply_key
end
private
def service_desk_avaiable?
@service_desk_available ||=
EE::Gitlab::ServiceDesk.enabled? && service_desk_enabled?
end
def auto_refresh_service_desk_key
if service_desk_mail_key.blank? || service_desk_enabled_changed?
refresh_service_desk_key!
......
require 'gitlab/ee/service_desk'
require 'ee/gitlab/service_desk'
module EE
module NotificationService
......@@ -9,7 +9,7 @@ module EE
end
def send_service_desk_notification(note)
return unless ::Gitlab::EE::ServiceDesk.enabled?
return unless EE::Gitlab::ServiceDesk.enabled?
return unless note.noteable_type == 'Issue'
issue = note.noteable
......
module Gitlab
module EE
module EE
module Gitlab
module ServiceDesk
def self.enabled?
# TODO
true
::License.current && ::License.current.add_on?('GitLab_ServiceDesk')
end
end
end
......
......@@ -6,7 +6,7 @@ module Gitlab
include ReplyProcessing
def can_handle?
Gitlab::EE::ServiceDesk.enabled? && service_desk_key.present?
::EE::Gitlab::ServiceDesk.enabled? && service_desk_key.present?
end
def execute
......
......@@ -17,13 +17,16 @@ describe Gitlab::Email::Handler::EE::ServiceDeskHandler do
project.update(service_desk_mail_key: 'somemailkey')
allow(Notify).to receive(:service_desk_thank_you_email)
.with(instance_of(Integer)).and_return(double(deliver_later!: true))
.with(instance_of(Fixnum)).and_return(double(deliver_later!: true))
allow_any_instance_of(License).to receive(:add_on?).and_call_original
allow_any_instance_of(License).to receive(:add_on?).with('GitLab_ServiceDesk') { true }
end
it 'receives the email and creates issue' do
it 'sends thank you the email and creates issue' do
setup_attachment
expect(Notify).to receive(:service_desk_thank_you_email).with(instance_of(Integer))
expect(Notify).to receive(:service_desk_thank_you_email).with(instance_of(Fixnum))
expect { receiver.execute }.to change { Issue.count }.by(1)
......@@ -42,12 +45,25 @@ describe Gitlab::Email::Handler::EE::ServiceDeskHandler do
.and_return(nil)
end
it "creates issue and does not send thank you email" do
it "does not send thank you email but create an issue" do
expect(Notify).not_to receive(:service_desk_thank_you_email)
expect { receiver.execute }.to change { Issue.count }.by(1)
end
end
context 'when license does not support service desk' do
before do
allow_any_instance_of(License).to receive(:add_on?).and_call_original
allow_any_instance_of(License).to receive(:add_on?).with('GitLab_ServiceDesk') { false }
end
it 'does not create an issue or send email' do
expect(Notify).not_to receive(:service_desk_thank_you_email)
expect { receiver.execute rescue nil }.not_to change { Issue.count }
end
end
end
context 'when service desk is not enabled' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment