diff options
author | Clement Ho <ClemMakesApps@gmail.com> | 2016-12-16 16:25:52 -0600 |
---|---|---|
committer | Clement Ho <ClemMakesApps@gmail.com> | 2017-01-09 16:01:33 -0600 |
commit | e05d6b1cfac01c713016f20efae6962c3249e951 (patch) | |
tree | 5ed27a8fbcc5b9604df285f6ebe4a4c796d98238 /spec/features/issues/filtered_search/dropdown_hint_spec.rb | |
parent | 9c4868141273b536cc0bc7fb80a662789fe89286 (diff) | |
download | gitlab-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.rb | 57 |
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 |