Commit 4b6e583c authored by Tiago Botelho's avatar Tiago Botelho

adds test suite

parent cd51af1a
...@@ -26,4 +26,6 @@ module ServicesHelper ...@@ -26,4 +26,6 @@ module ServicesHelper
event = event.pluralize if %w[merge_request issue confidential_issue].include?(event) event = event.pluralize if %w[merge_request issue confidential_issue].include?(event)
"#{event}_events" "#{event}_events"
end end
extend self
end end
...@@ -48,10 +48,6 @@ http://app.asana.com/-/account_api' ...@@ -48,10 +48,6 @@ http://app.asana.com/-/account_api'
%w(push) %w(push)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def client def client
@_client ||= begin @_client ||= begin
Asana::Client.new do |c| Asana::Client.new do |c|
......
...@@ -27,10 +27,6 @@ class AssemblaService < Service ...@@ -27,10 +27,6 @@ class AssemblaService < Service
%w(push) %w(push)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(data) def execute(data)
return unless supported_events.include?(data[:object_kind]) return unless supported_events.include?(data[:object_kind])
......
...@@ -56,10 +56,6 @@ class BambooService < CiService ...@@ -56,10 +56,6 @@ class BambooService < CiService
] ]
end end
def self.supported_events
%w(push)
end
def build_page(sha, ref) def build_page(sha, ref)
with_reactive_cache(sha, ref) {|cached| cached[:build_page] } with_reactive_cache(sha, ref) {|cached| cached[:build_page] }
end end
......
...@@ -22,12 +22,4 @@ class BugzillaService < IssueTrackerService ...@@ -22,12 +22,4 @@ class BugzillaService < IssueTrackerService
def self.to_param def self.to_param
'bugzilla' 'bugzilla'
end end
def self.supported_events
%w()
end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
end end
...@@ -24,14 +24,6 @@ class BuildkiteService < CiService ...@@ -24,14 +24,6 @@ class BuildkiteService < CiService
hook.save hook.save
end end
def self.supported_events
%w(push)
end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(data) def execute(data)
return unless supported_events.include?(data[:object_kind]) return unless supported_events.include?(data[:object_kind])
......
...@@ -27,10 +27,6 @@ class BuildsEmailService < Service ...@@ -27,10 +27,6 @@ class BuildsEmailService < Service
%w(build) %w(build)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(push_data) def execute(push_data)
return unless supported_events.include?(push_data[:object_kind]) return unless supported_events.include?(push_data[:object_kind])
return unless should_build_be_notified?(push_data) return unless should_build_be_notified?(push_data)
......
...@@ -28,10 +28,6 @@ class CampfireService < Service ...@@ -28,10 +28,6 @@ class CampfireService < Service
%w(push) %w(push)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(data) def execute(data)
return unless supported_events.include?(data[:object_kind]) return unless supported_events.include?(data[:object_kind])
......
...@@ -12,9 +12,6 @@ class CiService < Service ...@@ -12,9 +12,6 @@ class CiService < Service
%w(push) %w(push)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
# Return complete url to build page # Return complete url to build page
# #
# Ex. # Ex.
......
...@@ -36,12 +36,4 @@ class CustomIssueTrackerService < IssueTrackerService ...@@ -36,12 +36,4 @@ class CustomIssueTrackerService < IssueTrackerService
{ type: 'text', name: 'new_issue_url', placeholder: 'New Issue url' } { type: 'text', name: 'new_issue_url', placeholder: 'New Issue url' }
] ]
end end
def self.supported_events
%w()
end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
end end
...@@ -20,10 +20,6 @@ class EmailsOnPushService < Service ...@@ -20,10 +20,6 @@ class EmailsOnPushService < Service
%w(push tag_push) %w(push tag_push)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(push_data) def execute(push_data)
return unless supported_events.include?(push_data[:object_kind]) return unless supported_events.include?(push_data[:object_kind])
......
...@@ -33,8 +33,4 @@ class ExternalWikiService < Service ...@@ -33,8 +33,4 @@ class ExternalWikiService < Service
def self.supported_events def self.supported_events
%w() %w()
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
end end
...@@ -26,10 +26,6 @@ class FlowdockService < Service ...@@ -26,10 +26,6 @@ class FlowdockService < Service
%w(push) %w(push)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(data) def execute(data)
return unless supported_events.include?(data[:object_kind]) return unless supported_events.include?(data[:object_kind])
......
...@@ -27,10 +27,6 @@ class GemnasiumService < Service ...@@ -27,10 +27,6 @@ class GemnasiumService < Service
%w(push) %w(push)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(data) def execute(data)
return unless supported_events.include?(data[:object_kind]) return unless supported_events.include?(data[:object_kind])
......
...@@ -49,10 +49,6 @@ class HipchatService < Service ...@@ -49,10 +49,6 @@ class HipchatService < Service
%w(push issue confidential_issue merge_request note tag_push build) %w(push issue confidential_issue merge_request note tag_push build)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(data) def execute(data)
return unless supported_events.include?(data[:object_kind]) return unless supported_events.include?(data[:object_kind])
message = create_message(data) message = create_message(data)
......
...@@ -25,10 +25,6 @@ class IrkerService < Service ...@@ -25,10 +25,6 @@ class IrkerService < Service
%w(push) %w(push)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(data) def execute(data)
return unless supported_events.include?(data[:object_kind]) return unless supported_events.include?(data[:object_kind])
......
...@@ -16,10 +16,6 @@ class JiraService < IssueTrackerService ...@@ -16,10 +16,6 @@ class JiraService < IssueTrackerService
%w(commit merge_request) %w(commit merge_request)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
# {PROJECT-KEY}-{NUMBER} Examples: JIRA-1, PROJECT-1 # {PROJECT-KEY}-{NUMBER} Examples: JIRA-1, PROJECT-1
def reference_pattern def reference_pattern
@reference_pattern ||= %r{(?<issue>\b([A-Z][A-Z0-9_]+-)\d+)} @reference_pattern ||= %r{(?<issue>\b([A-Z][A-Z0-9_]+-)\d+)}
......
...@@ -158,14 +158,6 @@ class KubernetesService < DeploymentService ...@@ -158,14 +158,6 @@ class KubernetesService < DeploymentService
opts opts
end end
def self.supported_events
%w()
end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def kubeclient_auth_options def kubeclient_auth_options
{ bearer_token: token } { bearer_token: token }
end end
......
...@@ -38,12 +38,4 @@ class MattermostService < ChatNotificationService ...@@ -38,12 +38,4 @@ class MattermostService < ChatNotificationService
def default_channel_placeholder def default_channel_placeholder
"#town-square" "#town-square"
end end
def self.supported_events
%w()
end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
end end
...@@ -48,12 +48,4 @@ class MattermostSlashCommandsService < ChatSlashCommandsService ...@@ -48,12 +48,4 @@ class MattermostSlashCommandsService < ChatSlashCommandsService
method: 'P', method: 'P',
username: 'GitLab') username: 'GitLab')
end end
def self.supported_events
%w()
end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
end end
...@@ -23,10 +23,6 @@ class PipelinesEmailService < Service ...@@ -23,10 +23,6 @@ class PipelinesEmailService < Service
%w[pipeline] %w[pipeline]
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(data, force: false) def execute(data, force: false)
return unless supported_events.include?(data[:object_kind]) return unless supported_events.include?(data[:object_kind])
return unless force || should_pipeline_be_notified?(data) return unless force || should_pipeline_be_notified?(data)
......
...@@ -38,10 +38,6 @@ class PivotaltrackerService < Service ...@@ -38,10 +38,6 @@ class PivotaltrackerService < Service
%w(push) %w(push)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(data) def execute(data)
return unless supported_events.include?(data[:object_kind]) return unless supported_events.include?(data[:object_kind])
return unless allowed_branch?(data[:ref]) return unless allowed_branch?(data[:ref])
......
...@@ -65,10 +65,6 @@ class PushoverService < Service ...@@ -65,10 +65,6 @@ class PushoverService < Service
%w(push) %w(push)
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def execute(data) def execute(data)
return unless supported_events.include?(data[:object_kind]) return unless supported_events.include?(data[:object_kind])
......
...@@ -22,12 +22,4 @@ class RedmineService < IssueTrackerService ...@@ -22,12 +22,4 @@ class RedmineService < IssueTrackerService
def self.to_param def self.to_param
'redmine' 'redmine'
end end
def self.supported_events
%w()
end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
end end
...@@ -37,12 +37,4 @@ class SlackService < ChatNotificationService ...@@ -37,12 +37,4 @@ class SlackService < ChatNotificationService
def default_channel_placeholder def default_channel_placeholder
"#general" "#general"
end end
def self.supported_events
%w()
end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
end end
...@@ -25,12 +25,4 @@ class SlackSlashCommandsService < ChatSlashCommandsService ...@@ -25,12 +25,4 @@ class SlackSlashCommandsService < ChatSlashCommandsService
def format(text) def format(text)
Slack::Notifier::LinkFormatter.format(text) if text Slack::Notifier::LinkFormatter.format(text) if text
end end
def self.supported_events
%w()
end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
end end
...@@ -47,14 +47,6 @@ class TeamcityService < CiService ...@@ -47,14 +47,6 @@ class TeamcityService < CiService
'teamcity' 'teamcity'
end end
def self.supported_events
%w(push)
end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def fields def fields
[ [
{ type: 'text', name: 'teamcity_url', { type: 'text', name: 'teamcity_url',
......
...@@ -79,6 +79,10 @@ class Service < ActiveRecord::Base ...@@ -79,6 +79,10 @@ class Service < ActiveRecord::Base
self.class.to_param self.class.to_param
end end
def self.to_param
raise NotImplementedError
end
def fields def fields
# implement inside child # implement inside child
[] []
...@@ -93,10 +97,13 @@ class Service < ActiveRecord::Base ...@@ -93,10 +97,13 @@ class Service < ActiveRecord::Base
end end
def event_names def event_names
# implement inside child
self.class.event_names self.class.event_names
end end
def self.event_names
self.supported_events.map { |event| "#{event}_events" }
end
def event_field(event) def event_field(event)
nil nil
end end
...@@ -109,6 +116,10 @@ class Service < ActiveRecord::Base ...@@ -109,6 +116,10 @@ class Service < ActiveRecord::Base
self.class.supported_events self.class.supported_events
end end
def self.supported_events
%w(push tag_push issue confidential_issue merge_request wiki_page)
end
def execute(data) def execute(data)
# implement inside child # implement inside child
end end
......
...@@ -600,12 +600,11 @@ module API ...@@ -600,12 +600,11 @@ module API
service_classes.each do |service| service_classes.each do |service|
event_names = service.try(:event_names) || [] event_names = service.try(:event_names) || []
event_names.each do |event_name| event_names.each do |event_name|
services[service.to_param.gsub("_", "-")] << { services[service.to_param.tr("_", "-")] << {
required: false, required: false,
name: event_name.to_sym, name: event_name.to_sym,
type: String, type: String,
desc: ServicesHelper.instance_method(:service_event_description) desc: ServicesHelper.service_event_description(event_name)
.bind(self).call(event_name)
} }
end end
end end
......
...@@ -54,6 +54,7 @@ describe Projects::ServicesController do ...@@ -54,6 +54,7 @@ describe Projects::ServicesController do
context 'on successful update' do context 'on successful update' do
it 'sets the flash' do it 'sets the flash' do
expect(service).to receive(:to_param).and_return('hipchat') expect(service).to receive(:to_param).and_return('hipchat')
expect(service).to receive(:event_names).and_return(HipchatService.event_names)
put :update, put :update,
namespace_id: project.namespace.id, namespace_id: project.namespace.id,
......
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