diff options
author | Jose Ivan Vargas <jvargas@gitlab.com> | 2017-10-03 12:11:56 -0500 |
---|---|---|
committer | Jose Ivan Vargas <jvargas@gitlab.com> | 2017-10-03 12:11:56 -0500 |
commit | f682cc189a38e6cbe6ee92a3327d6b865c42e84a (patch) | |
tree | 212dcf7c84a96615040ce81d51cad01e6e9454d0 /features | |
parent | 62364576bc4e2b141752a6ea9068171fa619a6ff (diff) | |
parent | 18fee3060c78e032777b5dc6b3d1f60432446ea5 (diff) | |
download | gitlab-ce-f682cc189a38e6cbe6ee92a3327d6b865c42e84a.tar.gz |
Merge branch 'master' into sh-headless-chrome-support
Diffstat (limited to 'features')
-rw-r--r-- | features/project/ff_merge_requests.feature | 24 | ||||
-rw-r--r-- | features/steps/project/ff_merge_requests.rb | 65 | ||||
-rw-r--r-- | features/steps/shared/diff_note.rb | 1 |
3 files changed, 90 insertions, 0 deletions
diff --git a/features/project/ff_merge_requests.feature b/features/project/ff_merge_requests.feature new file mode 100644 index 00000000000..995e52f9332 --- /dev/null +++ b/features/project/ff_merge_requests.feature @@ -0,0 +1,24 @@ +Feature: Project Ff Merge Requests + Background: + Given I sign in as a user + And I own project "Shop" + And project "Shop" have "Bug NS-05" open merge request with diffs inside + And merge request "Bug NS-05" is mergeable + + @javascript + Scenario: I do ff-only merge for rebased branch + Given ff merge enabled + And merge request "Bug NS-05" is rebased + When I visit merge request page "Bug NS-05" + Then I should see ff-only merge button + When I accept this merge request + Then I should see merged request + + @javascript + Scenario: I do ff-only merge for merged branch + Given ff merge enabled + And merge request "Bug NS-05" merged target + When I visit merge request page "Bug NS-05" + Then I should see ff-only merge button + When I accept this merge request + Then I should see merged request diff --git a/features/steps/project/ff_merge_requests.rb b/features/steps/project/ff_merge_requests.rb new file mode 100644 index 00000000000..d68fe71e16e --- /dev/null +++ b/features/steps/project/ff_merge_requests.rb @@ -0,0 +1,65 @@ +class Spinach::Features::ProjectFfMergeRequests < Spinach::FeatureSteps + include SharedAuthentication + include SharedIssuable + include SharedProject + include SharedNote + include SharedPaths + include SharedMarkdown + include SharedDiffNote + include SharedUser + include WaitForRequests + + step 'project "Shop" have "Bug NS-05" open merge request with diffs inside' do + create(:merge_request_with_diffs, + title: "Bug NS-05", + source_project: project, + target_project: project, + author: project.users.first) + end + + step 'I should see ff-only merge button' do + expect(page).to have_content "Fast-forward merge without a merge commit" + expect(page).to have_button 'Merge' + end + + step 'merge request "Bug NS-05" is mergeable' do + merge_request.mark_as_mergeable + end + + step 'I accept this merge request' do + page.within '.mr-state-widget' do + click_button "Merge" + end + end + + step 'I should see merged request' do + page.within '.status-box' do + expect(page).to have_content "Merged" + wait_for_requests + end + end + + step 'ff merge enabled' do + project = merge_request.target_project + project.merge_requests_ff_only_enabled = true + project.save! + end + + step 'merge request "Bug NS-05" is rebased' do + merge_request.source_branch = 'flatten-dir' + merge_request.target_branch = 'improve/awesome' + merge_request.reload_diff + merge_request.save! + end + + step 'merge request "Bug NS-05" merged target' do + merge_request.source_branch = 'merged-target' + merge_request.target_branch = 'improve/awesome' + merge_request.reload_diff + merge_request.save! + end + + def merge_request + @merge_request ||= MergeRequest.find_by!(title: "Bug NS-05") + end +end diff --git a/features/steps/shared/diff_note.rb b/features/steps/shared/diff_note.rb index 4f2f33cf768..aa32528a7ca 100644 --- a/features/steps/shared/diff_note.rb +++ b/features/steps/shared/diff_note.rb @@ -231,6 +231,7 @@ module SharedDiffNote end def click_parallel_diff_line(code, line_type) + find(".line_holder.parallel td[id='#{code}']").find(:xpath, 'preceding-sibling::*[1][self::td]').hover find(".line_holder.parallel button[data-line-code='#{code}']").click end end |