cherry_pick_spec.rb 3.0 KB
Newer Older
P
P.S.V.R 已提交
1
require 'spec_helper'
2
include WaitForAjax
P
P.S.V.R 已提交
3 4

describe 'Cherry-pick Commits' do
5 6
  let(:group) { create(:group) }
  let(:project) { create(:project, namespace: group) }
P
P.S.V.R 已提交
7 8 9 10 11 12
  let(:master_pickable_commit)  { project.commit('7d3b0f7cff5f37573aea97cebfd5692ea1689924') }
  let(:master_pickable_merge)  { project.commit('e56497bb5f03a90a51293fc6d516788730953899') }

  before do
    login_as :user
    project.team << [@user, :master]
13
    visit namespace_project_commit_path(project.namespace, project, master_pickable_commit.id)
P
P.S.V.R 已提交
14 15 16 17 18
  end

  context "I cherry-pick a commit" do
    it do
      find("a[href='#modal-cherry-pick-commit']").click
19
      expect(page).not_to have_content('v1.0.0') # Only branches, not tags
P
P.S.V.R 已提交
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
      page.within('#modal-cherry-pick-commit') do
        uncheck 'create_merge_request'
        click_button 'Cherry-pick'
      end
      expect(page).to have_content('The commit has been successfully cherry-picked.')
    end
  end

  context "I cherry-pick a merge commit" do
    it do
      find("a[href='#modal-cherry-pick-commit']").click
      page.within('#modal-cherry-pick-commit') do
        uncheck 'create_merge_request'
        click_button 'Cherry-pick'
      end
      expect(page).to have_content('The commit has been successfully cherry-picked.')
    end
  end

  context "I cherry-pick a commit that was previously cherry-picked" do
    it do
      find("a[href='#modal-cherry-pick-commit']").click
      page.within('#modal-cherry-pick-commit') do
        uncheck 'create_merge_request'
        click_button 'Cherry-pick'
      end
      visit namespace_project_commit_path(project.namespace, project, master_pickable_commit.id)
      find("a[href='#modal-cherry-pick-commit']").click
      page.within('#modal-cherry-pick-commit') do
        uncheck 'create_merge_request'
        click_button 'Cherry-pick'
      end
      expect(page).to have_content('Sorry, we cannot cherry-pick this commit automatically.')
    end
  end

  context "I cherry-pick a commit in a new merge request" do
    it do
      find("a[href='#modal-cherry-pick-commit']").click
      page.within('#modal-cherry-pick-commit') do
        click_button 'Cherry-pick'
      end
      expect(page).to have_content('The commit has been successfully cherry-picked. You can now submit a merge request to get this change into the original branch.')
    end
  end
65 66 67

  context "I cherry-pick a commit from a different branch", js: true do
    it do
A
Annabel Dunstone Gray 已提交
68
      find('.header-action-buttons a.dropdown-toggle').click
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
      find(:css, "a[href='#modal-cherry-pick-commit']").click

      page.within('#modal-cherry-pick-commit') do
        click_button 'master'
      end

      wait_for_ajax

      page.within('#modal-cherry-pick-commit .dropdown-menu .dropdown-content') do
        click_link 'feature'
      end

      page.within('#modal-cherry-pick-commit') do
        uncheck 'create_merge_request'
        click_button 'Cherry-pick'
      end

      expect(page).to have_content('The commit has been successfully cherry-picked.')
    end
  end
P
P.S.V.R 已提交
89
end