compare_spec.rb 1.9 KB
Newer Older
P
Phil Hughes 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
require "spec_helper"

describe "Compare", js: true do
  let(:user)    { create(:user) }
  let(:project) { create(:project) }

  before do
    project.team << [user, :master]
    login_as user
    visit namespace_project_compare_index_path(project.namespace, project, from: "master", to: "master")
  end

  describe "branches" do
14
    it "pre-populates fields" do
15 16
      expect(find(".js-compare-from-dropdown .dropdown-toggle-text")).to have_content("master")
      expect(find(".js-compare-to-dropdown .dropdown-toggle-text")).to have_content("master")
P
Phil Hughes 已提交
17 18
    end

19
    it "compares branches" do
20 21
      select_using_dropdown "from", "feature"
      expect(find(".js-compare-from-dropdown .dropdown-toggle-text")).to have_content("feature")
P
Phil Hughes 已提交
22

23 24
      select_using_dropdown "to", "binary-encoding"
      expect(find(".js-compare-to-dropdown .dropdown-toggle-text")).to have_content("binary-encoding")
P
Phil Hughes 已提交
25 26 27 28

      click_button "Compare"
      expect(page).to have_content "Commits"
    end
29 30 31 32 33 34 35 36

    it "filters branches" do
      select_using_dropdown("from", "wip")

      find(".js-compare-from-dropdown .compare-dropdown-toggle").click

      expect(find(".js-compare-from-dropdown .dropdown-content")).to have_selector("li", count: 3)
    end
P
Phil Hughes 已提交
37 38 39
  end

  describe "tags" do
40
    it "compares tags" do
41 42
      select_using_dropdown "from", "v1.0.0"
      expect(find(".js-compare-from-dropdown .dropdown-toggle-text")).to have_content("v1.0.0")
P
Phil Hughes 已提交
43

44 45
      select_using_dropdown "to", "v1.1.0"
      expect(find(".js-compare-to-dropdown .dropdown-toggle-text")).to have_content("v1.1.0")
P
Phil Hughes 已提交
46 47 48 49 50

      click_button "Compare"
      expect(page).to have_content "Commits"
    end
  end
51 52 53 54

  def select_using_dropdown(dropdown_type, selection)
    dropdown = find(".js-compare-#{dropdown_type}-dropdown")
    dropdown.find(".compare-dropdown-toggle").click
S
Stan Hu 已提交
55
    dropdown.fill_in("Filter by Git revision", with: selection)
56
    find_link(selection, visible: true).click
57
  end
P
Phil Hughes 已提交
58
end