Newer
Older
# id :integer not null, primary key
# url :string(255)
# project_id :integer
# type :string(255) default("ProjectHook")
# service_id :integer
# push_events :boolean default(TRUE), not null
# issues_events :boolean default(FALSE), not null
# merge_requests_events :boolean default(FALSE), not null
# note_events :boolean default(FALSE), not null
let(:system_hook) { create(:system_hook) }
let(:user) { create(:user) }
let(:project) { create(:project, namespace: user.namespace) }
let(:group) { create(:group) }
before do
WebMock.stub_request(:post, system_hook.url)
Projects::CreateService.new(user, name: 'empty').execute
expect(WebMock).to have_requested(:post, system_hook.url).with(
headers: { 'Content-Type' => 'application/json', 'X-Gitlab-Event' => 'System Hook' }
Projects::DestroyService.new(project, user, {}).pending_delete!
expect(WebMock).to have_requested(:post, system_hook.url).with(
headers: { 'Content-Type' => 'application/json', 'X-Gitlab-Event' => 'System Hook' }
expect(WebMock).to have_requested(:post, system_hook.url).with(
headers: { 'Content-Type' => 'application/json', 'X-Gitlab-Event' => 'System Hook' }
expect(WebMock).to have_requested(:post, system_hook.url).with(
headers: { 'Content-Type' => 'application/json', 'X-Gitlab-Event' => 'System Hook' }
expect(WebMock).to have_requested(:post, system_hook.url).with(
headers: { 'Content-Type' => 'application/json', 'X-Gitlab-Event' => 'System Hook' }
project.team << [user, :master]
project.project_members.destroy_all
expect(WebMock).to have_requested(:post, system_hook.url).with(
body: /user_remove_from_team/,
headers: { 'Content-Type' => 'application/json', 'X-Gitlab-Event' => 'System Hook' }
Boyan Tabakov
committed
it 'group create hook' do
create(:group)
expect(WebMock).to have_requested(:post, system_hook.url).with(
headers: { 'Content-Type' => 'application/json', 'X-Gitlab-Event' => 'System Hook' }
Boyan Tabakov
committed
).once
end
it 'group destroy hook' do
group.destroy
expect(WebMock).to have_requested(:post, system_hook.url).with(
headers: { 'Content-Type' => 'application/json', 'X-Gitlab-Event' => 'System Hook' }
Boyan Tabakov
committed
).once
end
it 'group member create hook' do
expect(WebMock).to have_requested(:post, system_hook.url).with(
headers: { 'Content-Type' => 'application/json', 'X-Gitlab-Event' => 'System Hook' }
Boyan Tabakov
committed
).once
end
it 'group member destroy hook' do
Boyan Tabakov
committed
group.group_members.destroy_all
expect(WebMock).to have_requested(:post, system_hook.url).with(
headers: { 'Content-Type' => 'application/json', 'X-Gitlab-Event' => 'System Hook' }
Boyan Tabakov
committed
).once
end