merge requests on system hook admin page
This commit is contained in:
parent
d71d8ad7f8
commit
630c338051
|
@ -38,6 +38,13 @@
|
|||
%strong Tag push events
|
||||
%p.light
|
||||
This URL will be triggered when a new tag is pushed to the repository
|
||||
%div
|
||||
= form.check_box :merge_requests_events, class: 'pull-left'
|
||||
.prepend-left-20
|
||||
= form.label :merge_requests_events, class: 'list-label' do
|
||||
%strong Merge Request events
|
||||
%p.light
|
||||
This URL will be triggered when a merge request is created/updated/merged
|
||||
.form-group
|
||||
= form.label :enable_ssl_verification, 'SSL verification', class: 'control-label checkbox'
|
||||
.col-sm-10
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'Admin::Hooks', :js do
|
||||
before do
|
||||
@project = create(:project)
|
||||
sign_in(create(:admin))
|
||||
describe 'Admin::Hooks' do
|
||||
let(:user) { create(:admin) }
|
||||
|
||||
@system_hook = create(:system_hook)
|
||||
before do
|
||||
sign_in(user)
|
||||
end
|
||||
|
||||
describe 'GET /admin/hooks' do
|
||||
|
@ -13,15 +12,17 @@ describe 'Admin::Hooks', :js do
|
|||
visit admin_root_path
|
||||
|
||||
page.within '.nav-sidebar' do
|
||||
click_on 'Hooks'
|
||||
click_on 'System Hooks', match: :first
|
||||
end
|
||||
|
||||
expect(current_path).to eq(admin_hooks_path)
|
||||
end
|
||||
|
||||
it 'has hooks list' do
|
||||
system_hook = create(:system_hook)
|
||||
|
||||
visit admin_hooks_path
|
||||
expect(page).to have_content(@system_hook.url)
|
||||
expect(page).to have_content(system_hook.url)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -43,6 +44,10 @@ describe 'Admin::Hooks', :js do
|
|||
describe 'Update existing hook' do
|
||||
let(:new_url) { generate(:url) }
|
||||
|
||||
before do
|
||||
create(:system_hook)
|
||||
end
|
||||
|
||||
it 'updates existing hook' do
|
||||
visit admin_hooks_path
|
||||
|
||||
|
@ -58,6 +63,10 @@ describe 'Admin::Hooks', :js do
|
|||
end
|
||||
|
||||
describe 'Remove existing hook' do
|
||||
before do
|
||||
create(:system_hook)
|
||||
end
|
||||
|
||||
context 'removes existing hook' do
|
||||
it 'from hooks list page' do
|
||||
visit admin_hooks_path
|
||||
|
@ -76,7 +85,8 @@ describe 'Admin::Hooks', :js do
|
|||
|
||||
describe 'Test', :js do
|
||||
before do
|
||||
WebMock.stub_request(:post, @system_hook.url)
|
||||
system_hook = create(:system_hook)
|
||||
WebMock.stub_request(:post, system_hook.url)
|
||||
visit admin_hooks_path
|
||||
|
||||
find('.hook-test-button.dropdown').click
|
||||
|
@ -85,4 +95,49 @@ describe 'Admin::Hooks', :js do
|
|||
|
||||
it { expect(current_path).to eq(admin_hooks_path) }
|
||||
end
|
||||
|
||||
context 'Merge request hook' do
|
||||
describe 'New Hook' do
|
||||
let(:url) { generate(:url) }
|
||||
|
||||
it 'adds new hook' do
|
||||
visit admin_hooks_path
|
||||
|
||||
fill_in 'hook_url', with: url
|
||||
uncheck 'Repository update events'
|
||||
check 'Merge Request events'
|
||||
|
||||
expect { click_button 'Add system hook' }.to change(SystemHook, :count).by(1)
|
||||
expect(current_path).to eq(admin_hooks_path)
|
||||
expect(page).to have_content(url)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Test', :js do
|
||||
before do
|
||||
system_hook = create(:system_hook)
|
||||
WebMock.stub_request(:post, system_hook.url)
|
||||
end
|
||||
|
||||
it 'fails if the user does not have any repository with a merge request' do
|
||||
visit admin_hooks_path
|
||||
find('.hook-test-button.dropdown').click
|
||||
click_link 'Merge requests events'
|
||||
|
||||
expect(page).to have_content 'Ensure one of your projects has merge requests.'
|
||||
end
|
||||
|
||||
it 'succeeds if the user has a repository with a merge request' do
|
||||
project = create(:project, :repository)
|
||||
create(:project_member, user: user, project: project)
|
||||
create(:merge_request, source_project: project)
|
||||
|
||||
visit admin_hooks_path
|
||||
find('.hook-test-button.dropdown').click
|
||||
click_link 'Merge requests events'
|
||||
|
||||
expect(page).to have_content 'Hook executed successfully'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue