diff options
Diffstat (limited to 'spec/features/merge_requests/create_new_mr_spec.rb')
-rw-r--r-- | spec/features/merge_requests/create_new_mr_spec.rb | 181 |
1 files changed, 0 insertions, 181 deletions
diff --git a/spec/features/merge_requests/create_new_mr_spec.rb b/spec/features/merge_requests/create_new_mr_spec.rb deleted file mode 100644 index 486555ed5cd..00000000000 --- a/spec/features/merge_requests/create_new_mr_spec.rb +++ /dev/null @@ -1,181 +0,0 @@ -require 'spec_helper' - -feature 'Create New Merge Request', :js do - let(:user) { create(:user) } - let(:project) { create(:project, :public, :repository) } - - before do - project.add_master(user) - - sign_in user - end - - it 'selects the source branch sha when a tag with the same name exists' do - visit project_merge_requests_path(project) - - page.within '.content' do - click_link 'New merge request' - end - expect(page).to have_content('Source branch') - expect(page).to have_content('Target branch') - - first('.js-source-branch').click - find('.dropdown-source-branch .dropdown-content a', match: :first).click - - expect(page).to have_content "b83d6e3" - end - - it 'selects the target branch sha when a tag with the same name exists' do - visit project_merge_requests_path(project) - - page.within '.content' do - click_link 'New merge request' - end - - expect(page).to have_content('Source branch') - expect(page).to have_content('Target branch') - - first('.js-target-branch').click - find('.dropdown-target-branch .dropdown-content a', text: 'v1.1.0', match: :first).click - - expect(page).to have_content "b83d6e3" - end - - it 'generates a diff for an orphaned branch' do - visit project_merge_requests_path(project) - - page.within '.content' do - click_link 'New merge request' - end - expect(page).to have_content('Source branch') - expect(page).to have_content('Target branch') - - find('.js-source-branch', match: :first).click - find('.dropdown-source-branch .dropdown-content a', text: 'orphaned-branch', match: :first).click - - click_button "Compare branches" - click_link "Changes" - - expect(page).to have_content "README.md" - expect(page).to have_content "wm.png" - - fill_in "merge_request_title", with: "Orphaned MR test" - click_button "Submit merge request" - - click_link "Check out branch" - - expect(page).to have_content 'git checkout -b orphaned-branch origin/orphaned-branch' - end - - it 'allows filtering multiple dropdowns' do - visit project_new_merge_request_path(project) - - first('.js-source-branch').click - - input = find('.dropdown-source-branch .dropdown-input-field') - input.click - input.send_keys('orphaned-branch') - - find('.dropdown-source-branch .dropdown-content li', match: :first) - source_items = all('.dropdown-source-branch .dropdown-content li') - - expect(source_items.count).to eq(1) - - first('.js-target-branch').click - - find('.dropdown-target-branch .dropdown-content li', match: :first) - target_items = all('.dropdown-target-branch .dropdown-content li') - - expect(target_items.count).to be > 1 - end - - context 'when target project cannot be viewed by the current user' do - it 'does not leak the private project name & namespace' do - private_project = create(:project, :private, :repository) - - visit project_new_merge_request_path(project, merge_request: { target_project_id: private_project.id }) - - expect(page).not_to have_content private_project.full_path - expect(page).to have_content project.full_path - end - end - - context 'when source project cannot be viewed by the current user' do - it 'does not leak the private project name & namespace' do - private_project = create(:project, :private, :repository) - - visit project_new_merge_request_path(project, merge_request: { source_project_id: private_project.id }) - - expect(page).not_to have_content private_project.full_path - expect(page).to have_content project.full_path - end - end - - it 'populates source branch button' do - visit project_new_merge_request_path(project, change_branches: true, merge_request: { target_branch: 'master', source_branch: 'fix' }) - - expect(find('.js-source-branch')).to have_content('fix') - end - - it 'allows to change the diff view' do - visit project_new_merge_request_path(project, merge_request: { target_branch: 'master', source_branch: 'fix' }) - - click_link 'Changes' - - expect(page).to have_css('a.btn.active', text: 'Inline') - expect(page).not_to have_css('a.btn.active', text: 'Side-by-side') - - click_link 'Side-by-side' - - within '.merge-request' do - expect(page).not_to have_css('a.btn.active', text: 'Inline') - expect(page).to have_css('a.btn.active', text: 'Side-by-side') - end - end - - it 'does not allow non-existing branches' do - visit project_new_merge_request_path(project, merge_request: { target_branch: 'non-exist-target', source_branch: 'non-exist-source' }) - - expect(page).to have_content('The form contains the following errors') - expect(page).to have_content('Source branch "non-exist-source" does not exist') - expect(page).to have_content('Target branch "non-exist-target" does not exist') - end - - context 'when a branch contains commits that both delete and add the same image' do - it 'renders the diff successfully' do - visit project_new_merge_request_path(project, merge_request: { target_branch: 'master', source_branch: 'deleted-image-test' }) - - click_link "Changes" - - expect(page).to have_content "6049019_460s.jpg" - end - end - - # Isolates a regression (see #24627) - it 'does not show error messages on initial form' do - visit project_new_merge_request_path(project) - expect(page).not_to have_selector('#error_explanation') - expect(page).not_to have_content('The form contains the following error') - end - - context 'when a new merge request has a pipeline' do - let!(:pipeline) do - create(:ci_pipeline, sha: project.commit('fix').id, - ref: 'fix', - project: project) - end - - it 'shows pipelines for a new merge request' do - visit project_new_merge_request_path( - project, - merge_request: { target_branch: 'master', source_branch: 'fix' }) - - page.within('.merge-request') do - click_link 'Pipelines' - wait_for_requests - - expect(page).to have_content "##{pipeline.id}" - end - end - end -end |