60 lines
1.2 KiB
Ruby
60 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe API::SystemHooks, feature_category: :integrations do
|
|
let_it_be(:non_admin) { create(:user) }
|
|
let_it_be(:admin) { create(:admin) }
|
|
let_it_be_with_refind(:hook) { create(:system_hook, url: "http://example.com") }
|
|
|
|
it_behaves_like 'web-hook API endpoints', '' do
|
|
let(:user) { admin }
|
|
let(:unauthorized_user) { non_admin }
|
|
|
|
def scope
|
|
SystemHook
|
|
end
|
|
|
|
def collection_uri
|
|
"/hooks"
|
|
end
|
|
|
|
def match_collection_schema
|
|
match_response_schema('public_api/v4/system_hooks')
|
|
end
|
|
|
|
def hook_uri(hook_id = hook.id)
|
|
"/hooks/#{hook_id}"
|
|
end
|
|
|
|
def match_hook_schema
|
|
match_response_schema('public_api/v4/system_hook')
|
|
end
|
|
|
|
def event_names
|
|
%i[
|
|
push_events
|
|
tag_push_events
|
|
merge_requests_events
|
|
repository_update_events
|
|
]
|
|
end
|
|
|
|
def hook_param_overrides
|
|
{}
|
|
end
|
|
|
|
let(:update_params) do
|
|
{
|
|
push_events: false,
|
|
tag_push_events: true
|
|
}
|
|
end
|
|
|
|
let(:default_values) do
|
|
{ repository_update_events: true }
|
|
end
|
|
|
|
it_behaves_like 'web-hook API endpoints test hook', ''
|
|
end
|
|
end
|