summaryrefslogtreecommitdiff
path: root/spec/controllers/projects/hooks_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/projects/hooks_controller_spec.rb')
-rw-r--r--spec/controllers/projects/hooks_controller_spec.rb56
1 files changed, 53 insertions, 3 deletions
diff --git a/spec/controllers/projects/hooks_controller_spec.rb b/spec/controllers/projects/hooks_controller_spec.rb
index b9c008d2950..17baf38ef32 100644
--- a/spec/controllers/projects/hooks_controller_spec.rb
+++ b/spec/controllers/projects/hooks_controller_spec.rb
@@ -3,11 +3,11 @@
require 'spec_helper'
RSpec.describe Projects::HooksController do
- let(:project) { create(:project) }
- let(:user) { create(:user) }
+ let_it_be(:project) { create(:project) }
+
+ let(:user) { project.owner }
before do
- project.add_maintainer(user)
sign_in(user)
end
@@ -20,6 +20,56 @@ RSpec.describe Projects::HooksController do
end
end
+ describe '#edit' do
+ let_it_be(:hook) { create(:project_hook, project: project) }
+
+ let(:params) do
+ { namespace_id: project.namespace, project_id: project, id: hook.id }
+ end
+
+ render_views
+
+ it 'does not error if the hook cannot be found' do
+ get :edit, params: params.merge(id: non_existing_record_id)
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+
+ it 'assigns hook_logs' do
+ get :edit, params: params
+
+ expect(assigns[:hook]).to be_present
+ expect(assigns[:hook_logs]).to be_empty
+ it_renders_correctly
+ end
+
+ it 'handles when logs are present' do
+ create_list(:web_hook_log, 3, web_hook: hook)
+
+ get :edit, params: params
+
+ expect(assigns[:hook]).to be_present
+ expect(assigns[:hook_logs].count).to eq 3
+ it_renders_correctly
+ end
+
+ it 'can paginate logs' do
+ create_list(:web_hook_log, 21, web_hook: hook)
+
+ get :edit, params: params.merge(page: 2)
+
+ expect(assigns[:hook]).to be_present
+ expect(assigns[:hook_logs].count).to eq 1
+ it_renders_correctly
+ end
+
+ def it_renders_correctly
+ expect(response).to have_gitlab_http_status(:ok)
+ expect(response).to render_template(:edit)
+ expect(response).to render_template('projects/hook_logs/_index')
+ end
+ end
+
describe '#create' do
it 'sets all parameters' do
hook_params = {