diff options
Diffstat (limited to 'features')
-rw-r--r-- | features/project/hooks.feature | 5 | ||||
-rw-r--r-- | features/steps/project/hooks.rb | 26 |
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 |