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 @@ | @@ -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 | project = Project.find_by_name(arg1) | 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 | end | 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 | end | 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 | end | 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 | end | 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 | end | 46 | end |
38 | 47 |
features/step_definitions/project/project_milestones_steps.rb
0 → 100644
@@ -0,0 +1,38 @@ | @@ -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,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 |