Skip to content
代码片段 群组 项目
提交 21650078 编辑于 作者: Kyle Wiebers's avatar Kyle Wiebers
浏览文件

Revert "Merge branch 'jj_336099_remove_integration_after_save_callback' into 'master'"

This reverts merge request !93620
上级 b3060748
No related branches found
No related tags found
无相关合并请求
...@@ -5,6 +5,7 @@ module HasWebHook ...@@ -5,6 +5,7 @@ module HasWebHook
extend ActiveSupport::Concern extend ActiveSupport::Concern
included do included do
after_save :update_web_hook!, if: :activated?
has_one :service_hook, inverse_of: :integration, foreign_key: :service_id has_one :service_hook, inverse_of: :integration, foreign_key: :service_id
end end
......
...@@ -8,8 +8,6 @@ class Buildkite < BaseCi ...@@ -8,8 +8,6 @@ class Buildkite < BaseCi
include ReactivelyCached include ReactivelyCached
extend Gitlab::Utils::Override extend Gitlab::Utils::Override
after_save :ensure_ssl_verification
ENDPOINT = "https://buildkite.com" ENDPOINT = "https://buildkite.com"
field :project_url, field :project_url,
...@@ -50,12 +48,6 @@ def enable_ssl_verification=(_value) ...@@ -50,12 +48,6 @@ def enable_ssl_verification=(_value)
self.properties = properties.except('enable_ssl_verification') # Remove unused key self.properties = properties.except('enable_ssl_verification') # Remove unused key
end end
def ensure_ssl_verification
return unless service_hook
update_web_hook!
end
override :hook_url override :hook_url
def hook_url def hook_url
"#{buildkite_endpoint('webhook')}/deliver/#{webhook_token}" "#{buildkite_endpoint('webhook')}/deliver/#{webhook_token}"
......
...@@ -5,8 +5,7 @@ ...@@ -5,8 +5,7 @@
RSpec.describe Projects::Settings::IntegrationHookLogsController do RSpec.describe Projects::Settings::IntegrationHookLogsController do
let(:project) { create(:project, :repository) } let(:project) { create(:project, :repository) }
let(:user) { create(:user) } let(:user) { create(:user) }
let(:service_hook) { create(:service_hook) } let(:integration) { create(:drone_ci_integration, project: project) }
let(:integration) { create(:drone_ci_integration, project: project, service_hook: service_hook) }
let(:log) { create(:web_hook_log, web_hook: integration.service_hook) } let(:log) { create(:web_hook_log, web_hook: integration.service_hook) }
let(:log_params) do let(:log_params) do
{ {
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
let_it_be(:plan) { create(:default_plan) } let_it_be(:plan) { create(:default_plan) }
let_it_be_with_reload(:project_hook) { create(:project_hook) } let_it_be_with_reload(:project_hook) { create(:project_hook) }
let_it_be_with_reload(:system_hook) { create(:system_hook) } let_it_be_with_reload(:system_hook) { create(:system_hook) }
let_it_be_with_reload(:integration_hook) { create(:service_hook) } let_it_be_with_reload(:integration_hook) { create(:jenkins_integration).service_hook }
let_it_be(:limit) { 1 } let_it_be(:limit) { 1 }
using RSpec::Parameterized::TableSyntax using RSpec::Parameterized::TableSyntax
......
...@@ -115,7 +115,6 @@ def stub_request(status: 200, body: nil) ...@@ -115,7 +115,6 @@ def stub_request(status: 200, body: nil)
it_behaves_like Integrations::HasWebHook do it_behaves_like Integrations::HasWebHook do
include_context :drone_ci_integration include_context :drone_ci_integration
let(:drone_url) { 'https://cloud.drone.io' }
let(:integration) { drone } let(:integration) { drone }
let(:hook_url) { "#{drone_url}/hook?owner=#{project.namespace.full_path}&name=#{project.path}&access_token=#{token}" } let(:hook_url) { "#{drone_url}/hook?owner=#{project.namespace.full_path}&name=#{project.path}&access_token=#{token}" }
......
...@@ -7,6 +7,30 @@ ...@@ -7,6 +7,30 @@
it { is_expected.to have_one(:service_hook).inverse_of(:integration).with_foreign_key(:service_id) } it { is_expected.to have_one(:service_hook).inverse_of(:integration).with_foreign_key(:service_id) }
end end
describe 'callbacks' do
it 'calls #update_web_hook! when enabled' do
expect(integration).to receive(:update_web_hook!)
integration.active = true
integration.save!
end
it 'does not call #update_web_hook! when disabled' do
expect(integration).not_to receive(:update_web_hook!)
integration.active = false
integration.save!
end
it 'does not call #update_web_hook! when validation fails' do
expect(integration).not_to receive(:update_web_hook!)
integration.active = true
integration.project = nil
expect(integration.save).to be(false)
end
end
describe '#hook_url' do describe '#hook_url' do
it 'returns a string' do it 'returns a string' do
expect(integration.hook_url).to be_a(String) expect(integration.hook_url).to be_a(String)
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册