summaryrefslogtreecommitdiff
path: root/features
diff options
context:
space:
mode:
authorRobert Schilling <rschilling@student.tugraz.at>2014-07-27 22:26:23 +0200
committerRobert Schilling <rschilling@student.tugraz.at>2014-07-27 23:48:53 +0200
commit062ff17b1cd65485d88b676584ae793cce8b3345 (patch)
tree46a8712190b95113d4b277053b0950a03270ffc0 /features
parentcb0d63b9e3fa464ae8c0cd9cf7bdb8d080a7e02f (diff)
downloadgitlab-ce-062ff17b1cd65485d88b676584ae793cce8b3345.tar.gz
Do not execute hooks on empty projects, fixes #6108
Diffstat (limited to 'features')
-rw-r--r--features/project/hooks.feature5
-rw-r--r--features/steps/project/hooks.rb26
2 files changed, 25 insertions, 6 deletions
diff --git a/features/project/hooks.feature b/features/project/hooks.feature
index b158e07ad33..52e02a890dd 100644
--- a/features/project/hooks.feature
+++ b/features/project/hooks.feature
@@ -19,3 +19,8 @@ Feature: Project Hooks
When I click test hook button
Then hook should be triggered
+ Scenario: I test a hook on empty project
+ Given I own empty project with hook
+ And I visit project hooks page
+ When I click test hook button
+ Then I should see hook error message
diff --git a/features/steps/project/hooks.rb b/features/steps/project/hooks.rb
index 19ff3244543..30da589260d 100644
--- a/features/steps/project/hooks.rb
+++ b/features/steps/project/hooks.rb
@@ -8,31 +8,45 @@ class ProjectHooks < Spinach::FeatureSteps
include RSpec::Mocks::ExampleMethods
include WebMock::API
- Given 'project has hook' do
+ step 'project has hook' do
@hook = create(:project_hook, project: current_project)
end
- Then 'I should see project hook' do
+ step 'I own empty project with hook' do
+ @project = create(:empty_project,
+ name: 'Empty Project', namespace: @user.namespace)
+ @hook = create(:project_hook, project: current_project)
+ end
+
+ step 'I should see project hook' do
page.should have_content @hook.url
end
- When 'I submit new hook' do
+ step 'I submit new hook' do
@url = Faker::Internet.uri("http")
fill_in "hook_url", with: @url
expect { click_button "Add Web Hook" }.to change(ProjectHook, :count).by(1)
end
- Then 'I should see newly created hook' do
+ step 'I should see newly created hook' do
page.current_path.should == project_hooks_path(current_project)
page.should have_content(@url)
end
- When 'I click test hook button' do
+ step 'I click test hook button' do
stub_request(:post, @hook.url).to_return(status: 200)
click_link 'Test Hook'
end
- Then 'hook should be triggered' do
+ step 'hook should be triggered' do
page.current_path.should == project_hooks_path(current_project)
+ page.should have_selector '.flash-notice',
+ text: 'Hook successfully executed.'
+ end
+
+ step 'I should see hook error message' do
+ page.should have_selector '.flash-alert',
+ text: 'Hook execution failed. '\
+ 'Ensure the project has commits.'
end
end