summaryrefslogtreecommitdiff
path: root/features
diff options
context:
space:
mode:
Diffstat (limited to 'features')
-rw-r--r--features/project/merge_requests.feature12
-rw-r--r--features/steps/project/merge_requests.rb22
-rw-r--r--features/steps/shared/paths.rb5
3 files changed, 39 insertions, 0 deletions
diff --git a/features/project/merge_requests.feature b/features/project/merge_requests.feature
index d043badbc46..35ffa9fc6e1 100644
--- a/features/project/merge_requests.feature
+++ b/features/project/merge_requests.feature
@@ -41,6 +41,18 @@ Feature: Project Merge Requests
And I submit new merge request "Wiki Feature"
Then I should see merge request "Wiki Feature"
+ Scenario: I download a diff on a public merge request
+ Given public project "Community"
+ And "John Doe" owns public project "Community"
+ And project "Community" has "Bug CO-01" open merge request with diffs inside
+ Given I logout directly
+ And I visit merge request page "Bug CO-01"
+ And I click on "Email Patches"
+ Then I should see a patch diff
+ And I visit merge request page "Bug CO-01"
+ And I click on "Plain Diff"
+ Then I should see a patch diff
+
@javascript
Scenario: I comment on a merge request
Given I visit merge request page "Bug NS-04"
diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb
index 5684d661527..f11edb659d5 100644
--- a/features/steps/project/merge_requests.rb
+++ b/features/steps/project/merge_requests.rb
@@ -6,6 +6,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
include SharedPaths
include SharedMarkdown
include SharedDiffNote
+ include SharedUser
step 'I click link "New Merge Request"' do
click_link "New Merge Request"
@@ -108,6 +109,15 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
author: project.users.first)
end
+ step 'project "Community" has "Bug CO-01" open merge request with diffs inside' do
+ project = Project.find_by(name: "Community")
+ create(:merge_request_with_diffs,
+ title: "Bug CO-01",
+ source_project: project,
+ target_project: project,
+ author: project.users.first)
+ end
+
step 'I switch to the diff tab' do
visit diffs_namespace_project_merge_request_path(project.namespace, project, merge_request)
end
@@ -326,6 +336,18 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
expect(page).to have_content 'Target branch changed from master to feature'
end
+ step 'I click on "Email Patches"' do
+ click_link "Email Patches"
+ end
+
+ step 'I click on "Plain Diff"' do
+ click_link "Plain Diff"
+ end
+
+ step 'I should see a patch diff' do
+ expect(page).to have_content('diff --git')
+ end
+
def merge_request
@merge_request ||= MergeRequest.find_by!(title: "Bug NS-05")
end
diff --git a/features/steps/shared/paths.rb b/features/steps/shared/paths.rb
index 88ab9d0ab43..4cc01443c8b 100644
--- a/features/steps/shared/paths.rb
+++ b/features/steps/shared/paths.rb
@@ -357,6 +357,11 @@ module SharedPaths
visit namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr)
end
+ step 'I visit merge request page "Bug CO-01"' do
+ mr = MergeRequest.find_by(title: "Bug CO-01")
+ visit namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr)
+ end
+
step 'I visit project "Shop" merge requests page' do
visit namespace_project_merge_requests_path(project.namespace, project)
end