summaryrefslogtreecommitdiff
path: root/spec/features/projects/ref_switcher_spec.rb
blob: 50c0bfd580d9d3dd7eb4d13eca7c252ed124122c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
require 'rails_helper'

feature 'Ref switcher', :js do
  let(:user)      { create(:user) }
  let(:project)   { create(:project, :public, :repository) }

  before do
    project.team << [user, :master]
    page.driver.set_cookie('new_repo', 'true')
    sign_in(user)
    visit project_tree_path(project, 'master')
  end

  it 'allow user to change ref by enter key' do
    click_button 'master'
    wait_for_requests

    page.within '.project-refs-form' do
      input = find('input[type="search"]')
      input.set 'binary'
      wait_for_requests

      expect(find('.dropdown-content ul')).to have_selector('li', count: 7)

      page.within '.dropdown-content ul' do
        input.native.send_keys :enter
      end
    end

    expect(page).to have_title 'add-pdf-text-binary'
  end

  it "user selects ref with special characters" do
    click_button 'master'
    wait_for_requests

    page.within '.project-refs-form' do
      page.fill_in 'Search branches and tags', with: "'test'"
      click_link "'test'"
    end

    expect(page).to have_title "'test'"
  end

  context "create branch" do
    let(:input) { find('.js-new-branch-name') }

    before do
      click_button 'master'
      wait_for_requests

      page.within '.project-refs-form' do
        find(".dropdown-footer-list a").click
      end
    end

    it "shows error message for the invalid branch name" do
      input.set 'foo bar'
      click_button('Create')
      wait_for_requests
      expect(page).to have_content 'Branch name is invalid'
    end

    it "should create new branch properly" do
      input.set 'new-branch-name'
      click_button('Create')
      wait_for_requests
      expect(find('.js-project-refs-dropdown')).to have_content 'new-branch-name'
    end

    it "should create new branch by Enter key" do
      input.set 'new-branch-name-2'
      input.native.send_keys :enter
      wait_for_requests
      expect(find('.js-project-refs-dropdown')).to have_content 'new-branch-name-2'
    end
  end
end