Commit a8ce107c64c98f547613fd0e5a2b38c360f17fae
1 parent
ac9cec74
Exists in
master
and in
4 other branches
Cucumber feature -> Merge Request
Showing
4 changed files
with
114 additions
and
92 deletions
Show diff stats
features/projects/merge_requests.feature
| ... | ... | @@ -0,0 +1,42 @@ |
| 1 | +Feature: Merge Requests | |
| 2 | + Background: | |
| 3 | + Given I signin as a user | |
| 4 | + And I own project "Shop" | |
| 5 | + And project "Shop" have "Bug NS-04" open merge request | |
| 6 | + And project "Shop" have "Feature NS-03" closed merge request | |
| 7 | + And I visit project "Shop" merge requests page | |
| 8 | + | |
| 9 | + Scenario: I should see open merge requests | |
| 10 | + Then I should see "Bug NS-04" in merge requests | |
| 11 | + And I should not see "Feature NS-03" in merge requests | |
| 12 | + | |
| 13 | + Scenario: I should see closed merge requests | |
| 14 | + Given I click link "Closed" | |
| 15 | + Then I should see "Feature NS-03" in merge requests | |
| 16 | + And I should not see "Bug NS-04" in merge requests | |
| 17 | + | |
| 18 | + Scenario: I should see all merge requests | |
| 19 | + Given I click link "All" | |
| 20 | + Then I should see "Feature NS-03" in merge requests | |
| 21 | + And I should see "Bug NS-04" in merge requests | |
| 22 | + | |
| 23 | + Scenario: I visit merge request page | |
| 24 | + Given I click link "Bug NS-04" | |
| 25 | + Then I should see merge request "Bug NS-04" | |
| 26 | + | |
| 27 | + Scenario: I close merge request page | |
| 28 | + Given I click link "Bug NS-04" | |
| 29 | + And I click link "Close" | |
| 30 | + Then I should see closed merge request "Bug NS-04" | |
| 31 | + | |
| 32 | + Scenario: I submit new unassigned merge request | |
| 33 | + Given I click link "New Merge Request" | |
| 34 | + And I submit new merge request "Wiki Feature" | |
| 35 | + Then I should see merge request "Wiki Feature" | |
| 36 | + | |
| 37 | + @javascript | |
| 38 | + Scenario: I comment merge request | |
| 39 | + Given I visit merge request page "Bug NS-04" | |
| 40 | + And I leave a comment like "XML attached" | |
| 41 | + Then I should see comment "XML attached" | |
| 42 | + | ... | ... |
features/step_definitions/project/project_merge_requests_steps.rb
| 1 | -Given /^project "(.*?)" has milestone "(.*?)"$/ do |arg1, arg2| | |
| 1 | +Given /^project "(.*?)" have "(.*?)" open merge request$/ do |arg1, arg2| | |
| 2 | 2 | project = Project.find_by_name(arg1) |
| 3 | + Factory.create(:merge_request, :title => arg2, :project => project, :author => project.users.first) | |
| 4 | +end | |
| 5 | + | |
| 6 | +Given /^project "(.*?)" have "(.*?)" closed merge request$/ do |arg1, arg2| | |
| 7 | + project = Project.find_by_name(arg1) | |
| 8 | + Factory.create(:merge_request, :title => arg2, :project => project, :author => project.users.first, :closed => true) | |
| 9 | +end | |
| 3 | 10 | |
| 4 | - milestone = Factory :milestone, | |
| 5 | - :title => arg2, | |
| 6 | - :project => project | |
| 11 | +Given /^I visit project "(.*?)" merge requests page$/ do |arg1| | |
| 12 | + visit project_merge_requests_path(Project.find_by_name(arg1)) | |
| 13 | +end | |
| 14 | + | |
| 15 | +Then /^I should see "(.*?)" in merge requests$/ do |arg1| | |
| 16 | + page.should have_content arg1 | |
| 17 | +end | |
| 7 | 18 | |
| 8 | - 3.times do |i| | |
| 9 | - issue = Factory :issue, | |
| 10 | - :project => project, | |
| 11 | - :milestone => milestone | |
| 12 | - end | |
| 19 | +Then /^I should not see "(.*?)" in merge requests$/ do |arg1| | |
| 20 | + page.should_not have_content arg1 | |
| 13 | 21 | end |
| 14 | 22 | |
| 15 | -Given /^I visit project "(.*?)" milestones page$/ do |arg1| | |
| 16 | - @project = Project.find_by_name(arg1) | |
| 17 | - visit project_milestones_path(@project) | |
| 23 | +Then /^I should see merge request "(.*?)"$/ do |arg1| | |
| 24 | + merge_request = MergeRequest.find_by_title(arg1) | |
| 25 | + page.should have_content(merge_request.title[0..10]) | |
| 26 | + page.should have_content(merge_request.target_branch) | |
| 27 | + page.should have_content(merge_request.source_branch) | |
| 18 | 28 | end |
| 19 | 29 | |
| 20 | -Then /^I should see active milestones$/ do | |
| 21 | - milestone = @project.milestones.first | |
| 22 | - page.should have_content(milestone.title[0..10]) | |
| 23 | - page.should have_content(milestone.expires_at) | |
| 24 | - page.should have_content("Browse Issues") | |
| 30 | +Given /^I submit new merge request "(.*?)"$/ do |arg1| | |
| 31 | + fill_in "merge_request_title", :with => arg1 | |
| 32 | + select "master", :from => "merge_request_source_branch" | |
| 33 | + select "stable", :from => "merge_request_target_branch" | |
| 34 | + click_button "Save" | |
| 25 | 35 | end |
| 26 | 36 | |
| 27 | -Then /^I should see milestone "(.*?)"$/ do |arg1| | |
| 28 | - milestone = @project.milestones.find_by_title(arg1) | |
| 29 | - page.should have_content(milestone.title[0..10]) | |
| 30 | - page.should have_content(milestone.expires_at) | |
| 31 | - page.should have_content("Browse Issues") | |
| 37 | +Given /^I visit merge request page "(.*?)"$/ do |arg1| | |
| 38 | + mr = MergeRequest.find_by_title(arg1) | |
| 39 | + visit project_merge_request_path(mr.project, mr) | |
| 32 | 40 | end |
| 33 | 41 | |
| 34 | -Given /^I submit new milestone "(.*?)"$/ do |arg1| | |
| 35 | - fill_in "milestone_title", :with => arg1 | |
| 36 | - click_button "Create milestone" | |
| 42 | +Then /^I should see closed merge request "(.*?)"$/ do |arg1| | |
| 43 | + mr = MergeRequest.find_by_title(arg1) | |
| 44 | + mr.closed.should be_true | |
| 45 | + page.should have_content "Closed by" | |
| 37 | 46 | end |
| 38 | 47 | ... | ... |
features/step_definitions/project/project_milestones_steps.rb
0 → 100644
| ... | ... | @@ -0,0 +1,38 @@ |
| 1 | +Given /^project "(.*?)" has milestone "(.*?)"$/ do |arg1, arg2| | |
| 2 | + project = Project.find_by_name(arg1) | |
| 3 | + | |
| 4 | + milestone = Factory :milestone, | |
| 5 | + :title => arg2, | |
| 6 | + :project => project | |
| 7 | + | |
| 8 | + 3.times do |i| | |
| 9 | + issue = Factory :issue, | |
| 10 | + :project => project, | |
| 11 | + :milestone => milestone | |
| 12 | + end | |
| 13 | +end | |
| 14 | + | |
| 15 | +Given /^I visit project "(.*?)" milestones page$/ do |arg1| | |
| 16 | + @project = Project.find_by_name(arg1) | |
| 17 | + visit project_milestones_path(@project) | |
| 18 | +end | |
| 19 | + | |
| 20 | +Then /^I should see active milestones$/ do | |
| 21 | + milestone = @project.milestones.first | |
| 22 | + page.should have_content(milestone.title[0..10]) | |
| 23 | + page.should have_content(milestone.expires_at) | |
| 24 | + page.should have_content("Browse Issues") | |
| 25 | +end | |
| 26 | + | |
| 27 | +Then /^I should see milestone "(.*?)"$/ do |arg1| | |
| 28 | + milestone = @project.milestones.find_by_title(arg1) | |
| 29 | + page.should have_content(milestone.title[0..10]) | |
| 30 | + page.should have_content(milestone.expires_at) | |
| 31 | + page.should have_content("Browse Issues") | |
| 32 | +end | |
| 33 | + | |
| 34 | +Given /^I submit new milestone "(.*?)"$/ do |arg1| | |
| 35 | + fill_in "milestone_title", :with => arg1 | |
| 36 | + click_button "Create milestone" | |
| 37 | +end | |
| 38 | + | ... | ... |
spec/requests/merge_requests_spec.rb
| ... | ... | @@ -1,67 +0,0 @@ |
| 1 | -require 'spec_helper' | |
| 2 | - | |
| 3 | -describe "MergeRequests" do | |
| 4 | - let(:project) { Factory :project } | |
| 5 | - | |
| 6 | - before do | |
| 7 | - login_as :user | |
| 8 | - project.add_access(@user, :read, :write) | |
| 9 | - @merge_request = Factory :merge_request, | |
| 10 | - :author => @user, | |
| 11 | - :assignee => @user, | |
| 12 | - :project => project | |
| 13 | - end | |
| 14 | - | |
| 15 | - describe "GET /merge_requests" do | |
| 16 | - before do | |
| 17 | - visit project_merge_requests_path(project) | |
| 18 | - end | |
| 19 | - | |
| 20 | - subject { page } | |
| 21 | - | |
| 22 | - it { should have_content(@merge_request.title[0..10]) } | |
| 23 | - it { should have_content(@merge_request.target_branch) } | |
| 24 | - it { should have_content(@merge_request.source_branch) } | |
| 25 | - it { should have_content(@merge_request.assignee.name) } | |
| 26 | - end | |
| 27 | - | |
| 28 | - describe "GET /merge_request/:id" do | |
| 29 | - before do | |
| 30 | - visit project_merge_request_path(project, @merge_request) | |
| 31 | - end | |
| 32 | - | |
| 33 | - subject { page } | |
| 34 | - | |
| 35 | - it { should have_content(@merge_request.title[0..10]) } | |
| 36 | - it { should have_content(@merge_request.target_branch) } | |
| 37 | - it { should have_content(@merge_request.source_branch) } | |
| 38 | - it { should have_content(@merge_request.assignee.name) } | |
| 39 | - | |
| 40 | - describe "Close merge request" do | |
| 41 | - before { click_link "Close" } | |
| 42 | - | |
| 43 | - it { should have_content(@merge_request.title[0..10]) } | |
| 44 | - it "Show page should inform user that merge request closed" do | |
| 45 | - page.should have_content "Closed" | |
| 46 | - end | |
| 47 | - end | |
| 48 | - end | |
| 49 | - | |
| 50 | - describe "GET /merge_requests/new" do | |
| 51 | - before do | |
| 52 | - visit new_project_merge_request_path(project) | |
| 53 | - fill_in "merge_request_title", :with => "Merge Request Title" | |
| 54 | - select "master", :from => "merge_request_source_branch" | |
| 55 | - select "stable", :from => "merge_request_target_branch" | |
| 56 | - select @user.name, :from => "merge_request_assignee_id" | |
| 57 | - click_button "Save" | |
| 58 | - end | |
| 59 | - | |
| 60 | - it { current_path.should == project_merge_request_path(project, project.merge_requests.last) } | |
| 61 | - | |
| 62 | - it "should create merge request" do | |
| 63 | - page.should have_content "Close" | |
| 64 | - page.should have_content @user.name | |
| 65 | - end | |
| 66 | - end | |
| 67 | -end |