diff options
Diffstat (limited to 'spec/controllers/projects/hooks_controller_spec.rb')
-rw-r--r-- | spec/controllers/projects/hooks_controller_spec.rb | 56 |
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 = { |