diff options
author | Annabel Dunstone Gray <annabel.dunstone@gmail.com> | 2017-11-08 00:49:27 +0300 |
---|---|---|
committer | Annabel Dunstone Gray <annabel.dunstone@gmail.com> | 2017-11-08 00:49:27 +0300 |
commit | d9313795e744c83d1b2c7235b34438a87554562d (patch) | |
tree | e78ef594e4b672d9cb39b06bdb6243cf53016626 /spec/views | |
parent | 673b6be1fecedd3a4e7126134f3a764694fcf327 (diff) | |
parent | fb41187b7ff6154675ab07b75c8be1067efa8f69 (diff) |
Merge branch '37824-many-branches-lock-server' into 'master'
Project with many branches can lock server running "git branch --contains XXX"
Closes #37824
See merge request gitlab-org/gitlab-ce!14812
Diffstat (limited to 'spec/views')
-rw-r--r-- | spec/views/projects/commit/branches.html.haml_spec.rb | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/spec/views/projects/commit/branches.html.haml_spec.rb b/spec/views/projects/commit/branches.html.haml_spec.rb new file mode 100644 index 00000000000..b9d4dc80fe0 --- /dev/null +++ b/spec/views/projects/commit/branches.html.haml_spec.rb @@ -0,0 +1,109 @@ +require 'spec_helper' + +describe 'projects/commit/branches.html.haml' do + let(:project) { create(:project, :repository) } + + before do + assign(:project, project) + end + + context 'when branches and tags are available' do + before do + assign(:branches, ['master', 'test-branch']) + assign(:branches_limit_exceeded, false) + assign(:tags, ['tag1']) + assign(:tags_limit_exceeded, false) + + render + end + + it 'shows default branch' do + expect(rendered).to have_link('master') + end + + it 'shows js expand link' do + expect(rendered).to have_selector('.js-details-expand') + end + + it 'shows branch and tag links' do + expect(rendered).to have_link('test-branch') + expect(rendered).to have_link('tag1') + end + end + + context 'when branches are available but no tags' do + before do + assign(:branches, ['master', 'test-branch']) + assign(:branches_limit_exceeded, false) + assign(:tags, []) + assign(:tags_limit_exceeded, true) + + render + end + + it 'shows branches' do + expect(rendered).to have_link('master') + expect(rendered).to have_link('test-branch') + end + + it 'shows js expand link' do + expect(rendered).to have_selector('.js-details-expand') + end + + it 'shows limit exceeded message for tags' do + expect(rendered).to have_text('Tags unavailable') + end + end + + context 'when tags are available but no branches (just default)' do + before do + assign(:branches, ['master']) + assign(:branches_limit_exceeded, true) + assign(:tags, %w(tag1 tag2)) + assign(:tags_limit_exceeded, false) + + render + end + + it 'shows default branch' do + expect(rendered).to have_text('master') + end + + it 'shows js expand link' do + expect(rendered).to have_selector('.js-details-expand') + end + + it 'shows tags' do + expect(rendered).to have_link('tag1') + expect(rendered).to have_link('tag2') + end + + it 'shows limit exceeded for branches' do + expect(rendered).to have_text('Branches unavailable') + end + end + + context 'when branches and tags are not available' do + before do + assign(:branches, ['master']) + assign(:branches_limit_exceeded, true) + assign(:tags, []) + assign(:tags_limit_exceeded, true) + + render + end + + it 'shows default branch' do + expect(rendered).to have_text('master') + end + + it 'shows js expand link' do + expect(rendered).to have_selector('.js-details-expand') + end + + it 'shows too many to search' do + expect(rendered).to have_text('Branches unavailable') + expect(rendered).to have_text('Tags unavailable') + end + end +end |