Commit a7da770c3ee722c3f2d8e87d209647a8e5388652
Committed by
Diego Camarinha
1 parent
e7d644b7
Exists in
colab
and in
4 other branches
Add acceptance tests for the notify_push feature
* Also fixed a typo on a repository step that waits for an errored processing Signed off by: Diego Araújo <diegoamc90@gmail.com> Signed off by: Eduardo Araújo <duduktamg@hotmail.com>
Showing
5 changed files
with
57 additions
and
6 deletions
Show diff stats
... | ... | @@ -0,0 +1,31 @@ |
1 | +Feature: Notify push to repository | |
2 | + In order to automatically process a repository | |
3 | + As a regular user | |
4 | + I want to use a webhook in my repository to notify Mezuro of new pushes | |
5 | + | |
6 | + @kalibro_configuration_restart @kalibro_processor_restart | |
7 | + Scenario: Valid repository | |
8 | + Given I am a regular user | |
9 | + And I have a sample configuration with native metrics | |
10 | + And I have a sample repository | |
11 | + And I start to process that repository | |
12 | + And I wait up for a ready processing | |
13 | + When I push some commits to the repository | |
14 | + Then Mezuro should process the repository again | |
15 | + | |
16 | + @kalibro_configuration_restart @kalibro_processor_restart | |
17 | + Scenario: Invalid repository | |
18 | + Given I am a regular user | |
19 | + When I push some commits to an invalid repository | |
20 | + Then I should get a not found error | |
21 | + | |
22 | + @kalibro_configuration_restart @kalibro_processor_restart | |
23 | + Scenario: Repository with an errored processing | |
24 | + Given I am a regular user | |
25 | + And I have a sample configuration with native metrics | |
26 | + And I have a compound metric configuration with script "rtrnaqdfwqefwqr213r2145211234ed a = b=2" within the given mezuro configuration | |
27 | + And I have a sample repository | |
28 | + And I start to process that repository | |
29 | + And I wait up for an error processing | |
30 | + When I push some commits to the repository | |
31 | + Then Mezuro should process the repository again | ... | ... |
features/repository/show/hotspot_metric_results.feature
... | ... | @@ -37,7 +37,7 @@ Feature: Repository hotspot metric results |
37 | 37 | And I have a sample configuration with native metrics |
38 | 38 | And I have a sample of an invalid repository within the sample project |
39 | 39 | And I start to process that repository |
40 | - And I wait up for a error processing | |
40 | + And I wait up for an error processing | |
41 | 41 | When I visit the repository show page |
42 | 42 | And I click the "Hotspot Metric Results" h3 |
43 | 43 | Then I should see "Repository process returned with error. There are no hotspot metric results." | ... | ... |
features/repository/show/metric_results.feature
... | ... | @@ -46,7 +46,7 @@ Feature: Repository metric results |
46 | 46 | And I have a sample configuration with native metrics |
47 | 47 | And I have a sample of an invalid repository within the sample project |
48 | 48 | And I start to process that repository |
49 | - And I wait up for a error processing | |
49 | + And I wait up for an error processing | |
50 | 50 | When I visit the repository show page |
51 | 51 | And I click the "Tree Metric Results" h3 |
52 | 52 | Then I should see "Repository process returned with error. There are no tree metric results." | ... | ... |
features/step_definitions/compound_metric_configuration_steps.rb
... | ... | @@ -14,6 +14,10 @@ Given(/^I have another compound metric configuration with code "(.*?)" within th |
14 | 14 | @another_compound_metric_configuration = FactoryGirl.create(:compound_metric_configuration, {kalibro_configuration_id: @kalibro_configuration.id, metric: FactoryGirl.build(:compound_metric, code: code), reading_group_id: @reading_group.id}) |
15 | 15 | end |
16 | 16 | |
17 | +Given(/^I have a compound metric configuration with script "(.+)" within the given mezuro configuration$/) do |script| | |
18 | + @another_compound_metric_configuration = FactoryGirl.create(:compound_metric_configuration, kalibro_configuration_id: @kalibro_configuration.id, metric: FactoryGirl.build(:compound_metric, script: script), reading_group_id: @reading_group.id) | |
19 | +end | |
20 | + | |
17 | 21 | When(/^I visit the sample compound metric configuration edit page$/) do |
18 | 22 | visit edit_kalibro_configuration_compound_metric_configuration_path(kalibro_configuration_id: @compound_metric_configuration.kalibro_configuration_id, id: @compound_metric_configuration.id) |
19 | 23 | end | ... | ... |
features/step_definitions/repository_steps.rb
... | ... | @@ -9,15 +9,15 @@ Given(/^I have a sample configuration with native metrics but without ranges$/) |
9 | 9 | end |
10 | 10 | |
11 | 11 | Given(/^I have a sample configuration with native metrics$/) do |
12 | - reading_group = FactoryGirl.create(:reading_group) | |
13 | - reading = FactoryGirl.create(:reading, {reading_group_id: reading_group.id}) | |
12 | + @reading_group = FactoryGirl.create(:reading_group) | |
13 | + reading = FactoryGirl.create(:reading, {reading_group_id: @reading_group.id}) | |
14 | 14 | |
15 | 15 | @kalibro_configuration = FactoryGirl.create(:kalibro_configuration) |
16 | 16 | FactoryGirl.create(:kalibro_configuration_attributes, {id: nil, user_id: @user.id, kalibro_configuration_id: @kalibro_configuration.id}) |
17 | 17 | |
18 | 18 | metric_configuration = FactoryGirl.create(:metric_configuration, |
19 | 19 | {metric: FactoryGirl.build(:loc), |
20 | - reading_group_id: reading_group.id, | |
20 | + reading_group_id: @reading_group.id, | |
21 | 21 | kalibro_configuration_id: @kalibro_configuration.id}) |
22 | 22 | range = FactoryGirl.build(:kalibro_range, {reading_id: reading.id, beginning: '-INF', :end => 'INF', metric_configuration_id: metric_configuration.id}) |
23 | 23 | range.save |
... | ... | @@ -69,7 +69,7 @@ Given(/^I wait up for the last processing to get ready$/) do |
69 | 69 | end |
70 | 70 | end |
71 | 71 | |
72 | -Given(/^I wait up for a error processing$/) do | |
72 | +Given(/^I wait up for an error processing$/) do | |
73 | 73 | while @repository.last_processing_state != "ERROR" |
74 | 74 | sleep(10) |
75 | 75 | end |
... | ... | @@ -150,6 +150,14 @@ When(/^I get the Creation Date information as "(.*?)"$/) do |variable| |
150 | 150 | eval ("@#{variable} = DateTime.parse('#{val}')") |
151 | 151 | end |
152 | 152 | |
153 | +When(/^I push some commits to the repository$/) do | |
154 | + post repository_notify_push_path(id: @repository.id) | |
155 | +end | |
156 | + | |
157 | +When(/^I push some commits to an invalid repository$/) do | |
158 | + @response = post repository_notify_push_path(id: 0) | |
159 | +end | |
160 | + | |
153 | 161 | Then(/^I should see the sample metric's name$/) do |
154 | 162 | expect(page).to have_content(@metric_results.first.metric_configuration.metric.name) |
155 | 163 | end |
... | ... | @@ -245,3 +253,11 @@ Then(/^I should see the hotspot metric results file names$/) do |
245 | 253 | expect(page).to have_content(metric_result.module_result.kalibro_module.short_name) |
246 | 254 | end |
247 | 255 | end |
256 | + | |
257 | +Then(/^Mezuro should process the repository again$/) do | |
258 | + expect(@repository.last_processing).not_to eq(@repository.first_processing) | |
259 | +end | |
260 | + | |
261 | +Then(/^I should get a not found error$/) do | |
262 | + expect(@response.status).to eq(404) | |
263 | +end | ... | ... |