88 lines
2.2 KiB
Ruby
88 lines
2.2 KiB
Ruby
|
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 'merge request is mergeable' do
|
||
|
expect(page).to have_button 'Merge'
|
||
|
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 'I should see rebase button' do
|
||
|
expect(page).to have_button "Rebase"
|
||
|
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
|
||
|
|
||
|
step 'rebase before merge enabled' do
|
||
|
project = merge_request.target_project
|
||
|
project.merge_requests_rebase_enabled = true
|
||
|
project.save!
|
||
|
end
|
||
|
|
||
|
step 'I press rebase button' do
|
||
|
click_button "Rebase"
|
||
|
end
|
||
|
|
||
|
step "I should see rebase in progress message" do
|
||
|
expect(page).to have_content("Rebase in progress")
|
||
|
end
|
||
|
|
||
|
def merge_request
|
||
|
@merge_request ||= MergeRequest.find_by!(title: "Bug NS-05")
|
||
|
end
|
||
|
end
|