gitlab-org--gitlab-foss/spec/features/admin/admin_hooks_spec.rb
Mike Greiling f783798825
Merge branch 'master' into sh-headless-chrome-support
* master: (113 commits)
  Introduce new hook data builders for Issue and MergeRequest
  Don't create todos for old issue assignees
  Start adding Gitlab::HookData::IssuableBuilder
  Include the changes in issuable webhook payloads
  Rename the `codeclimate` job to `codequality`
  Don't show an "Unsubscribe" link in snippet comment notifications
  Add QA::Scenario::Gitlab::Group::Create
  Removes CommitsList from global namespace
  Fix wiki empty page translation namespace not being removed
  Fixes mini graph in commit view
  Fix link to new i18n index page
  Update i18n docs
  Move i18n/introduction to i18n/index
  Resolve "Simple documentation update - backup to restore in restore section"
  Remove AjaxLoadingSpinner and CreateLabelDropdown from global namespace
  Move cycle analytics banner into a vue file
  Updated Icons + Fix for Collapsed Groups Angle
  Don't create fork networks for root projects that are deleted
  Remove executable permissions on images to make docs lint happy
  Sync up hard coded DN class in migration
  ...
2017-10-09 15:00:00 -05:00

88 lines
2.1 KiB
Ruby

require 'spec_helper'
describe 'Admin::Hooks', :js do
before do
@project = create(:project)
sign_in(create(:admin))
@system_hook = create(:system_hook)
end
describe 'GET /admin/hooks' do
it 'is ok' do
visit admin_root_path
page.within '.nav-sidebar' do
click_on 'Hooks'
end
expect(current_path).to eq(admin_hooks_path)
end
it 'has hooks list' do
visit admin_hooks_path
expect(page).to have_content(@system_hook.url)
end
end
describe 'New Hook' do
let(:url) { generate(:url) }
it 'adds new hook' do
visit admin_hooks_path
fill_in 'hook_url', with: url
check 'Enable SSL verification'
expect { click_button 'Add system hook' }.to change(SystemHook, :count).by(1)
expect(page).to have_content 'SSL Verification: enabled'
expect(current_path).to eq(admin_hooks_path)
expect(page).to have_content(url)
end
end
describe 'Update existing hook' do
let(:new_url) { generate(:url) }
it 'updates existing hook' do
visit admin_hooks_path
click_link 'Edit'
fill_in 'hook_url', with: new_url
check 'Enable SSL verification'
click_button 'Save changes'
expect(page).to have_content 'SSL Verification: enabled'
expect(current_path).to eq(admin_hooks_path)
expect(page).to have_content(new_url)
end
end
describe 'Remove existing hook' do
context 'removes existing hook' do
it 'from hooks list page' do
visit admin_hooks_path
expect { accept_confirm { find(:link, 'Remove').send_keys(:return) } }.to change(SystemHook, :count).by(-1)
end
it 'from hook edit page' do
visit admin_hooks_path
click_link 'Edit'
expect { accept_confirm { find(:link, 'Remove').send_keys(:return) } }.to change(SystemHook, :count).by(-1)
end
end
end
describe 'Test', :js do
before do
WebMock.stub_request(:post, @system_hook.url)
visit admin_hooks_path
find('.hook-test-button.dropdown').click
click_link 'Push events'
end
it { expect(current_path).to eq(admin_hooks_path) }
end
end