summaryrefslogtreecommitdiff
path: root/spec/features/issues/filtered_search/dropdown_hint_spec.rb
diff options
context:
space:
mode:
authorClement Ho <ClemMakesApps@gmail.com>2016-12-16 16:25:52 -0600
committerClement Ho <ClemMakesApps@gmail.com>2017-01-09 16:01:33 -0600
commite05d6b1cfac01c713016f20efae6962c3249e951 (patch)
tree5ed27a8fbcc5b9604df285f6ebe4a4c796d98238 /spec/features/issues/filtered_search/dropdown_hint_spec.rb
parent9c4868141273b536cc0bc7fb80a662789fe89286 (diff)
downloadgitlab-ce-e05d6b1cfac01c713016f20efae6962c3249e951.tar.gz
Add specs for remaining dropdowns
Diffstat (limited to 'spec/features/issues/filtered_search/dropdown_hint_spec.rb')
-rw-r--r--spec/features/issues/filtered_search/dropdown_hint_spec.rb57
1 files changed, 33 insertions, 24 deletions
diff --git a/spec/features/issues/filtered_search/dropdown_hint_spec.rb b/spec/features/issues/filtered_search/dropdown_hint_spec.rb
index 216cd78850b..c4328bc18b0 100644
--- a/spec/features/issues/filtered_search/dropdown_hint_spec.rb
+++ b/spec/features/issues/filtered_search/dropdown_hint_spec.rb
@@ -6,6 +6,15 @@ describe 'Dropdown hint', js: true, feature: true do
let!(:project) { create(:empty_project) }
let!(:user) { create(:user) }
let(:filtered_search) { find('.filtered-search') }
+ let(:js_dropdown_hint) { '#js-dropdown-hint' }
+
+ def dropdown_hint_size
+ page.all('#js-dropdown-hint .filter-dropdown .filter-dropdown-item').size
+ end
+
+ def click_hint(text)
+ find('#js-dropdown-hint .filter-dropdown .filter-dropdown-item', text: text).click
+ end
before do
project.team << [user, :master]
@@ -17,30 +26,30 @@ describe 'Dropdown hint', js: true, feature: true do
describe 'behavior' do
before do
- expect(page).to have_css('#js-dropdown-hint', visible: false)
- filtered_search.click();
+ expect(page).to have_css(js_dropdown_hint, visible: false)
+ filtered_search.click()
end
it 'opens when the search bar is first focused' do
- expect(page).to have_css('#js-dropdown-hint', visible: true)
+ expect(page).to have_css(js_dropdown_hint, visible: true)
end
it 'closes when the search bar is unfocused' do
- find('body').click();
- expect(page).to have_css('#js-dropdown-hint', visible: false)
+ find('body').click()
+ expect(page).to have_css(js_dropdown_hint, visible: false)
end
end
describe 'filtering' do
it 'does not filter `Keep typing and press Enter`' do
filtered_search.set('randomtext')
- expect(page).to have_css('#js-dropdown-hint', text: 'Keep typing and press Enter', visible: false)
- expect(page.all('#js-dropdown-hint .filter-dropdown .filter-dropdown-item').size).to eq(0)
+ expect(page).to have_css(js_dropdown_hint, text: 'Keep typing and press Enter', visible: false)
+ expect(dropdown_hint_size).to eq(0)
end
it 'filters with text' do
filtered_search.set('a')
- expect(page.all('#js-dropdown-hint .filter-dropdown .filter-dropdown-item').size).to eq(3)
+ expect(dropdown_hint_size).to eq(3)
end
end
@@ -50,29 +59,29 @@ describe 'Dropdown hint', js: true, feature: true do
end
it 'opens the author dropdown when you click on author' do
- find('#js-dropdown-hint .filter-dropdown .filter-dropdown-item', text: 'author').click
- expect(page).to have_css('#js-dropdown-hint', visible: false)
+ click_hint('author')
+ expect(page).to have_css(js_dropdown_hint, visible: false)
expect(page).to have_css('#js-dropdown-author', visible: true)
expect(filtered_search.value).to eq('author:')
end
it 'opens the assignee dropdown when you click on assignee' do
- find('#js-dropdown-hint .filter-dropdown .filter-dropdown-item', text: 'assignee').click
- expect(page).to have_css('#js-dropdown-hint', visible: false)
+ click_hint('assignee')
+ expect(page).to have_css(js_dropdown_hint, visible: false)
expect(page).to have_css('#js-dropdown-assignee', visible: true)
expect(filtered_search.value).to eq('assignee:')
end
it 'opens the milestone dropdown when you click on milestone' do
- find('#js-dropdown-hint .filter-dropdown .filter-dropdown-item', text: 'milestone').click
- expect(page).to have_css('#js-dropdown-hint', visible: false)
+ click_hint('milestone')
+ expect(page).to have_css(js_dropdown_hint, visible: false)
expect(page).to have_css('#js-dropdown-milestone', visible: true)
expect(filtered_search.value).to eq('milestone:')
end
it 'opens the label dropdown when you click on label' do
- find('#js-dropdown-hint .filter-dropdown .filter-dropdown-item', text: 'label').click
- expect(page).to have_css('#js-dropdown-hint', visible: false)
+ click_hint('label')
+ expect(page).to have_css(js_dropdown_hint, visible: false)
expect(page).to have_css('#js-dropdown-label', visible: true)
expect(filtered_search.value).to eq('label:')
end
@@ -81,32 +90,32 @@ describe 'Dropdown hint', js: true, feature: true do
describe 'selecting from dropdown with some input' do
it 'opens the author dropdown when you click on author' do
filtered_search.set('auth')
- find('#js-dropdown-hint .filter-dropdown .filter-dropdown-item', text: 'author').click
- expect(page).to have_css('#js-dropdown-hint', visible: false)
+ click_hint('author')
+ expect(page).to have_css(js_dropdown_hint, visible: false)
expect(page).to have_css('#js-dropdown-author', visible: true)
expect(filtered_search.value).to eq('author:')
end
it 'opens the assignee dropdown when you click on assignee' do
filtered_search.set('assign')
- find('#js-dropdown-hint .filter-dropdown .filter-dropdown-item', text: 'assignee').click
- expect(page).to have_css('#js-dropdown-hint', visible: false)
+ click_hint('assignee')
+ expect(page).to have_css(js_dropdown_hint, visible: false)
expect(page).to have_css('#js-dropdown-assignee', visible: true)
expect(filtered_search.value).to eq('assignee:')
end
it 'opens the milestone dropdown when you click on milestone' do
filtered_search.set('mile')
- find('#js-dropdown-hint .filter-dropdown .filter-dropdown-item', text: 'milestone').click
- expect(page).to have_css('#js-dropdown-hint', visible: false)
+ click_hint('milestone')
+ expect(page).to have_css(js_dropdown_hint, visible: false)
expect(page).to have_css('#js-dropdown-milestone', visible: true)
expect(filtered_search.value).to eq('milestone:')
end
it 'opens the label dropdown when you click on label' do
filtered_search.set('lab')
- find('#js-dropdown-hint .filter-dropdown .filter-dropdown-item', text: 'label').click
- expect(page).to have_css('#js-dropdown-hint', visible: false)
+ click_hint('label')
+ expect(page).to have_css(js_dropdown_hint, visible: false)
expect(page).to have_css('#js-dropdown-label', visible: true)
expect(filtered_search.value).to eq('label:')
end