diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2018-08-01 10:04:29 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2018-08-01 10:04:29 +0300 |
commit | 9b433c370688ddb4be261915da6aeb8327429966 (patch) | |
tree | 033c5f431affde7ead660f93efbf4612690a474a /spec/features | |
parent | b690c268c2c34e1a7e34a9bbef264fe986e2f2d4 (diff) | |
parent | ac05ebc330375a9624f6f42f053db96116f3e8ba (diff) |
Merge branch 'dz-labels-search' into 'master'
Search for label on project labels page by title or description
See merge request gitlab-org/gitlab-ce!20749
Diffstat (limited to 'spec/features')
-rw-r--r-- | spec/features/projects/labels/search_labels_spec.rb | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/spec/features/projects/labels/search_labels_spec.rb b/spec/features/projects/labels/search_labels_spec.rb new file mode 100644 index 00000000000..2d5a138c3cc --- /dev/null +++ b/spec/features/projects/labels/search_labels_spec.rb @@ -0,0 +1,80 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe 'Search for labels', :js do + let(:user) { create(:user) } + let(:project) { create(:project) } + let!(:label1) { create(:label, title: 'Foo', description: 'Lorem ipsum', project: project) } + let!(:label2) { create(:label, title: 'Bar', description: 'Fusce consequat', project: project) } + + before do + project.add_maintainer(user) + sign_in(user) + + visit project_labels_path(project) + end + + it 'searches for label by title' do + fill_in 'label-search', with: 'Bar' + find('#label-search').native.send_keys(:enter) + + expect(page).to have_content(label2.title) + expect(page).to have_content(label2.description) + expect(page).not_to have_content(label1.title) + expect(page).not_to have_content(label1.description) + end + + it 'searches for label by title' do + fill_in 'label-search', with: 'Lorem' + find('#label-search').native.send_keys(:enter) + + expect(page).to have_content(label1.title) + expect(page).to have_content(label1.description) + expect(page).not_to have_content(label2.title) + expect(page).not_to have_content(label2.description) + end + + it 'shows nothing found message' do + fill_in 'label-search', with: 'nonexistent' + find('#label-search').native.send_keys(:enter) + + expect(page).to have_content('No labels with such name or description') + expect(page).not_to have_content(label1.title) + expect(page).not_to have_content(label1.description) + expect(page).not_to have_content(label2.title) + expect(page).not_to have_content(label2.description) + end + + context 'priority labels' do + let!(:label_priority) { create(:label_priority, label: label1, project: project) } + + it 'searches for priority label' do + fill_in 'label-search', with: 'Foo' + find('#label-search').native.send_keys(:enter) + + page.within('.prioritized-labels') do + expect(page).to have_content(label1.title) + expect(page).to have_content(label1.description) + end + + page.within('.other-labels') do + expect(page).to have_content('No other labels with such name or description') + end + end + + it 'searches for other label' do + fill_in 'label-search', with: 'Bar' + find('#label-search').native.send_keys(:enter) + + page.within('.prioritized-labels') do + expect(page).to have_content('No prioritised labels with such name or description') + end + + page.within('.other-labels') do + expect(page).to have_content(label2.title) + expect(page).to have_content(label2.description) + end + end + end +end |