diff options
author | Stan Hu <stanhu@gmail.com> | 2017-09-05 21:33:09 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2017-09-05 21:33:09 +0300 |
commit | 41e5ec8f74d9909050d54ae957b09a812a398c8e (patch) | |
tree | 8d07352840703d1421e53c2e8a595cd4da049842 /spec/features/issues/filtered_search | |
parent | f045903541ace5cf4fd3c6e4a05ecfd264c1c621 (diff) | |
parent | 685066cd0e4bb9c2279c1ed43ae445d07c963743 (diff) |
Merge branch 'master' into sh-headless-chrome-support
Diffstat (limited to 'spec/features/issues/filtered_search')
-rw-r--r-- | spec/features/issues/filtered_search/filter_issues_spec.rb | 538 | ||||
-rw-r--r-- | spec/features/issues/filtered_search/visual_tokens_spec.rb | 2 |
2 files changed, 117 insertions, 423 deletions
diff --git a/spec/features/issues/filtered_search/filter_issues_spec.rb b/spec/features/issues/filtered_search/filter_issues_spec.rb index 22e7becff1a..3ea6e1c8863 100644 --- a/spec/features/issues/filtered_search/filter_issues_spec.rb +++ b/spec/features/issues/filtered_search/filter_issues_spec.rb @@ -1,26 +1,24 @@ require 'spec_helper' describe 'Filter issues', js: true do - include Devise::Test::IntegrationHelpers include FilteredSearchHelpers - let!(:group) { create(:group) } - let!(:project) { create(:project, group: group) } - let!(:user) { create(:user, username: 'joe', name: 'Joe') } - let!(:user2) { create(:user, username: 'jane') } - let!(:label) { create(:label, project: project) } - let!(:wontfix) { create(:label, project: project, title: "Won't fix") } + let(:project) { create(:project) } + + # NOTE: The short name here is actually important + # + # When the name is longer, the filtered search input can end up scrolling + # horizontally, and PhantomJS can't handle it. + let(:user) { create(:user, name: 'Ann') } let!(:bug_label) { create(:label, project: project, title: 'bug') } let!(:caps_sensitive_label) { create(:label, project: project, title: 'CaPs') } - let!(:milestone) { create(:milestone, title: "8", project: project, start_date: 2.days.ago) } let!(:multiple_words_label) { create(:label, project: project, title: "Two words") } - - let!(:closed_issue) { create(:issue, title: 'bug that is closed', project: project, state: :closed) } + let!(:milestone) { create(:milestone, title: "8", project: project, start_date: 2.days.ago) } def expect_no_issues_list page.within '.issues-list' do - expect(page).not_to have_selector('.issue') + expect(page).to have_no_selector('.issue') end end @@ -33,63 +31,62 @@ describe 'Filter issues', js: true do end end - def select_search_at_index(pos) - evaluate_script("el = document.querySelector('.filtered-search'); el.focus(); el.setSelectionRange(#{pos}, #{pos});") - end - before do - project.team << [user, :master] - project.team << [user2, :master] - group.add_developer(user) - group.add_developer(user2) + project.add_master(user) - sign_in(user) + user2 = create(:user) - create(:issue, project: project) - create(:issue, project: project, title: "Bug report 1") - create(:issue, project: project, title: "Bug report 2") - create(:issue, project: project, title: "issue with 'single quotes'") - create(:issue, project: project, title: "issue with \"double quotes\"") - create(:issue, project: project, title: "issue with !@\#{$%^&*()-+") - create(:issue, project: project, title: "issue by assignee", milestone: milestone, author: user, assignees: [user]) - create(:issue, project: project, title: "issue by assignee with searchTerm", milestone: milestone, author: user, assignees: [user]) + create(:issue, project: project, author: user2, title: "Bug report 1") + create(:issue, project: project, author: user2, title: "Bug report 2") - issue = create(:issue, + create(:issue, project: project, author: user, title: "issue by assignee", milestone: milestone, assignees: [user]) + create(:issue, project: project, author: user, title: "issue by assignee with searchTerm", milestone: milestone, assignees: [user]) + + create(:labeled_issue, title: "Bug 2", project: project, milestone: milestone, author: user, - assignees: [user]) - issue.labels << bug_label + assignees: [user], + labels: [bug_label]) - issue_with_caps_label = create(:issue, + create(:labeled_issue, title: "issue by assignee with searchTerm and label", project: project, milestone: milestone, author: user, - assignees: [user]) - issue_with_caps_label.labels << caps_sensitive_label + assignees: [user], + labels: [caps_sensitive_label]) - issue_with_everything = create(:issue, + create(:labeled_issue, title: "Bug report foo was possible", project: project, milestone: milestone, author: user, - assignees: [user]) - issue_with_everything.labels << bug_label - issue_with_everything.labels << caps_sensitive_label + assignees: [user], + labels: [bug_label, caps_sensitive_label]) + + create(:labeled_issue, title: "Issue with multiple words label", project: project, labels: [multiple_words_label]) - multiple_words_label_issue = create(:issue, title: "Issue with multiple words label", project: project) - multiple_words_label_issue.labels << multiple_words_label + sign_in(user) + visit project_issues_path(project) + end - future_milestone = create(:milestone, title: "future", project: project, due_date: Time.now + 1.month) + it 'filters by all available tokens' do + search_term = 'issue' - create(:issue, - title: "Issue with future milestone", - milestone: future_milestone, - project: project) + input_filtered_search("assignee:@#{user.username} author:@#{user.username} label:~#{caps_sensitive_label.title} milestone:%#{milestone.title} #{search_term}") - visit project_issues_path(project) + wait_for_requests + + expect_tokens([ + assignee_token(user.name), + author_token(user.name), + label_token(caps_sensitive_label.title), + milestone_token(milestone.title) + ]) + expect_issues_list_count(1) + expect_filtered_search_input(search_term) end describe 'filter issues by author' do @@ -104,59 +101,6 @@ describe 'Filter issues', js: true do expect_filtered_search_input_empty end end - - context 'author with other filters' do - let(:search_term) { 'issue' } - - it 'filters issues by searched author and text' do - input_filtered_search("author:@#{user.username} #{search_term}") - - wait_for_requests - - expect_tokens([author_token(user.name)]) - expect_issues_list_count(3) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched author, assignee and text' do - input_filtered_search("author:@#{user.username} assignee:@#{user.username} #{search_term}") - - wait_for_requests - - expect_tokens([author_token(user.name), assignee_token(user.name)]) - expect_issues_list_count(3) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched author, assignee, label, and text' do - input_filtered_search("author:@#{user.username} assignee:@#{user.username} label:~#{caps_sensitive_label.title} #{search_term}") - - wait_for_requests - - expect_tokens([ - author_token(user.name), - assignee_token(user.name), - label_token(caps_sensitive_label.title) - ]) - expect_issues_list_count(1) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched author, assignee, label, milestone and text' do - input_filtered_search("author:@#{user.username} assignee:@#{user.username} label:~#{caps_sensitive_label.title} milestone:%#{milestone.title} #{search_term}") - - wait_for_requests - - expect_tokens([ - author_token(user.name), - assignee_token(user.name), - label_token(caps_sensitive_label.title), - milestone_token(milestone.title) - ]) - expect_issues_list_count(1) - expect_filtered_search_input(search_term) - end - end end describe 'filter issues by assignee' do @@ -175,66 +119,13 @@ describe 'Filter issues', js: true do input_filtered_search('assignee:none') expect_tokens([assignee_token('none')]) - expect_issues_list_count(8, 1) + expect_issues_list_count(3) expect_filtered_search_input_empty end end - - context 'assignee with other filters' do - let(:search_term) { 'searchTerm' } - - it 'filters issues by searched assignee and text' do - input_filtered_search("assignee:@#{user.username} #{search_term}") - - wait_for_requests - - expect_tokens([assignee_token(user.name)]) - expect_issues_list_count(2) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched assignee, author and text' do - input_filtered_search("assignee:@#{user.username} author:@#{user.username} #{search_term}") - - wait_for_requests - - expect_tokens([assignee_token(user.name), author_token(user.name)]) - expect_issues_list_count(2) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched assignee, author, label, text' do - input_filtered_search("assignee:@#{user.username} author:@#{user.username} label:~#{caps_sensitive_label.title} #{search_term}") - - wait_for_requests - - expect_tokens([ - assignee_token(user.name), - author_token(user.name), - label_token(caps_sensitive_label.title) - ]) - expect_issues_list_count(1) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched assignee, author, label, milestone and text' do - input_filtered_search("assignee:@#{user.username} author:@#{user.username} label:~#{caps_sensitive_label.title} milestone:%#{milestone.title} #{search_term}") - - expect_tokens([ - assignee_token(user.name), - author_token(user.name), - label_token(caps_sensitive_label.title), - milestone_token(milestone.title) - ]) - expect_issues_list_count(1) - expect_filtered_search_input(search_term) - end - end end describe 'filter issues by label' do - let(:search_term) { 'bug' } - context 'only label' do it 'filters issues by searched label' do input_filtered_search("label:~#{bug_label.title}") @@ -248,7 +139,7 @@ describe 'Filter issues', js: true do input_filtered_search('label:none') expect_tokens([label_token('none', false)]) - expect_issues_list_count(9, 1) + expect_issues_list_count(8) expect_filtered_search_input_empty end @@ -275,13 +166,13 @@ describe 'Filter issues', js: true do expect_filtered_search_input_empty end - it 'does not show issues' do + it 'does not show issues for unused labels' do new_label = create(:label, project: project, title: 'new_label') input_filtered_search("label:~#{new_label.title}") expect_tokens([label_token(new_label.title)]) - expect_no_issues_list() + expect_no_issues_list expect_filtered_search_input_empty end end @@ -344,95 +235,10 @@ describe 'Filter issues', js: true do end end - context 'label with other filters' do - it 'filters issues by searched label and text' do - input_filtered_search("label:~#{caps_sensitive_label.title} #{search_term}") - - expect_tokens([label_token(caps_sensitive_label.title)]) - expect_issues_list_count(1) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched label, author and text' do - input_filtered_search("label:~#{caps_sensitive_label.title} author:@#{user.username} #{search_term}") - - wait_for_requests - - expect_tokens([label_token(caps_sensitive_label.title), author_token(user.name)]) - expect_issues_list_count(1) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched label, author, assignee and text' do - input_filtered_search("label:~#{caps_sensitive_label.title} author:@#{user.username} assignee:@#{user.username} #{search_term}") - - wait_for_requests - - expect_tokens([ - label_token(caps_sensitive_label.title), - author_token(user.name), - assignee_token(user.name) - ]) - expect_issues_list_count(1) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched label, author, assignee, milestone and text' do - input_filtered_search("label:~#{caps_sensitive_label.title} author:@#{user.username} assignee:@#{user.username} milestone:%#{milestone.title} #{search_term}") - - expect_tokens([ - label_token(caps_sensitive_label.title), - author_token(user.name), - assignee_token(user.name), - milestone_token(milestone.title) - ]) - expect_issues_list_count(1) - expect_filtered_search_input(search_term) - end - end - context 'multiple labels with other filters' do - it 'filters issues by searched label, label2, and text' do - input_filtered_search("label:~#{bug_label.title} label:~#{caps_sensitive_label.title} #{search_term}") - - expect_tokens([ - label_token(bug_label.title), - label_token(caps_sensitive_label.title) - ]) - expect_issues_list_count(1) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched label, label2, author and text' do - input_filtered_search("label:~#{bug_label.title} label:~#{caps_sensitive_label.title} author:@#{user.username} #{search_term}") - - wait_for_requests - - expect_tokens([ - label_token(bug_label.title), - label_token(caps_sensitive_label.title), - author_token(user.name) - ]) - expect_issues_list_count(1) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched label, label2, author, assignee and text' do - input_filtered_search("label:~#{bug_label.title} label:~#{caps_sensitive_label.title} author:@#{user.username} assignee:@#{user.username} #{search_term}") - - wait_for_requests - - expect_tokens([ - label_token(bug_label.title), - label_token(caps_sensitive_label.title), - author_token(user.name), - assignee_token(user.name) - ]) - expect_issues_list_count(1) - expect_filtered_search_input(search_term) - end - it 'filters issues by searched label, label2, author, assignee, milestone and text' do + search_term = 'bug' + input_filtered_search("label:~#{bug_label.title} label:~#{caps_sensitive_label.title} author:@#{user.username} assignee:@#{user.username} milestone:%#{milestone.title} #{search_term}") wait_for_requests @@ -450,15 +256,10 @@ describe 'Filter issues', js: true do end context 'issue label clicked' do - before do + it 'filters and displays in search bar' do find('.issues-list .issue .issue-main-info .issuable-info a .label', text: multiple_words_label.title).click - end - it 'filters' do expect_issues_list_count(1) - end - - it 'displays in search bar' do expect_tokens([label_token("\"#{multiple_words_label.title}\"")]) expect_filtered_search_input_empty end @@ -479,11 +280,15 @@ describe 'Filter issues', js: true do input_filtered_search("milestone:none") expect_tokens([milestone_token('none', false)]) - expect_issues_list_count(7, 1) + expect_issues_list_count(3) expect_filtered_search_input_empty end it 'filters issues by upcoming milestones' do + create(:milestone, project: project, due_date: 1.month.from_now) do |future_milestone| + create(:issue, project: project, milestone: future_milestone, author: user) + end + input_filtered_search("milestone:upcoming") expect_tokens([milestone_token('upcoming', false)]) @@ -501,7 +306,7 @@ describe 'Filter issues', js: true do it 'filters issues by milestone containing special characters' do special_milestone = create(:milestone, title: '!@\#{$%^&*()}', project: project) - create(:issue, title: "Issue with special character milestone", project: project, milestone: special_milestone) + create(:issue, project: project, milestone: special_milestone) input_filtered_search("milestone:%#{special_milestone.title}") @@ -510,70 +315,16 @@ describe 'Filter issues', js: true do expect_filtered_search_input_empty end - it 'does not show issues' do - new_milestone = create(:milestone, title: "new", project: project) + it 'does not show issues for unused milestones' do + new_milestone = create(:milestone, title: 'new', project: project) input_filtered_search("milestone:%#{new_milestone.title}") expect_tokens([milestone_token(new_milestone.title)]) - expect_no_issues_list() + expect_no_issues_list expect_filtered_search_input_empty end end - - context 'milestone with other filters' do - let(:search_term) { 'bug' } - - it 'filters issues by searched milestone and text' do - input_filtered_search("milestone:%#{milestone.title} #{search_term}") - - expect_tokens([milestone_token(milestone.title)]) - expect_issues_list_count(2) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched milestone, author and text' do - input_filtered_search("milestone:%#{milestone.title} author:@#{user.username} #{search_term}") - - wait_for_requests - - expect_tokens([ - milestone_token(milestone.title), - author_token(user.name) - ]) - expect_issues_list_count(2) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched milestone, author, assignee and text' do - input_filtered_search("milestone:%#{milestone.title} author:@#{user.username} assignee:@#{user.username} #{search_term}") - - wait_for_requests - - expect_tokens([ - milestone_token(milestone.title), - author_token(user.name), - assignee_token(user.name) - ]) - expect_issues_list_count(2) - expect_filtered_search_input(search_term) - end - - it 'filters issues by searched milestone, author, assignee, label and text' do - input_filtered_search("milestone:%#{milestone.title} author:@#{user.username} assignee:@#{user.username} label:~#{bug_label.title} #{search_term}") - - wait_for_requests - - expect_tokens([ - milestone_token(milestone.title), - author_token(user.name), - assignee_token(user.name), - label_token(bug_label.title) - ]) - expect_issues_list_count(2) - expect_filtered_search_input(search_term) - end - end end describe 'filter issues by text' do @@ -582,7 +333,7 @@ describe 'Filter issues', js: true do search = 'Bug' input_filtered_search(search) - expect_issues_list_count(4, 1) + expect_issues_list_count(4) expect_filtered_search_input(search) end @@ -603,112 +354,50 @@ describe 'Filter issues', js: true do end it 'filters issues by searched text containing single quotes' do - search = '\'single quotes\'' + issue = create(:issue, project: project, author: user, title: "issue with 'single quotes'") + + search = "'single quotes'" input_filtered_search(search) expect_issues_list_count(1) expect_filtered_search_input(search) + expect(page).to have_content(issue.title) end it 'filters issues by searched text containing double quotes' do + issue = create(:issue, project: project, author: user, title: "issue with \"double quotes\"") + search = '"double quotes"' input_filtered_search(search) expect_issues_list_count(1) expect_filtered_search_input(search) + expect(page).to have_content(issue.title) end it 'filters issues by searched text containing special characters' do + issue = create(:issue, project: project, author: user, title: "issue with !@\#{$%^&*()-+") + search = '!@#{$%^&*()-+' input_filtered_search(search) expect_issues_list_count(1) expect_filtered_search_input(search) + expect(page).to have_content(issue.title) end it 'does not show any issues' do search = 'testing' input_filtered_search(search) - expect_no_issues_list() + expect_no_issues_list expect_filtered_search_input(search) end end context 'searched text with other filters' do - it 'filters issues by searched text and author' do - # After searching, all search terms are placed at the end - input_filtered_search("bug author:@#{user.username}") - - expect_issues_list_count(2) - expect_filtered_search_input('bug') - end - - it 'filters issues by searched text, author and more text' do - input_filtered_search("bug author:@#{user.username} report") - - expect_issues_list_count(1) - expect_filtered_search_input('bug report') - end - - it 'filters issues by searched text, author and assignee' do - input_filtered_search("bug author:@#{user.username} assignee:@#{user.username}") - - expect_issues_list_count(2) - expect_filtered_search_input('bug') - end - - it 'filters issues by searched text, author, more text and assignee' do - input_filtered_search("bug author:@#{user.username} report assignee:@#{user.username}") - - expect_issues_list_count(1) - expect_filtered_search_input('bug report') - end - - it 'filters issues by searched text, author, more text, assignee and even more text' do - input_filtered_search("bug author:@#{user.username} report assignee:@#{user.username} foo") - - expect_issues_list_count(1) - expect_filtered_search_input('bug report foo') - end - - it 'filters issues by searched text, author, assignee and label' do - input_filtered_search("bug author:@#{user.username} assignee:@#{user.username} label:~#{bug_label.title}") - - expect_issues_list_count(2) - expect_filtered_search_input('bug') - end - - it 'filters issues by searched text, author, text, assignee, text, label and text' do - input_filtered_search("bug author:@#{user.username} assignee:@#{user.username} report label:~#{bug_label.title} foo") - - expect_issues_list_count(1) - expect_filtered_search_input('bug report foo') - end - - it 'filters issues by searched text, author, assignee, label and milestone' do - input_filtered_search("bug author:@#{user.username} assignee:@#{user.username} label:~#{bug_label.title} milestone:%#{milestone.title}") - - expect_issues_list_count(2) - expect_filtered_search_input('bug') - end - - it 'filters issues by searched text, author, text, assignee, text, label, text, milestone and text' do - input_filtered_search("bug author:@#{user.username} assignee:@#{user.username} report label:~#{bug_label.title} milestone:%#{milestone.title} foo") - - expect_issues_list_count(1) - expect_filtered_search_input('bug report foo') - end - - it 'filters issues by searched text, author, assignee, multiple labels and milestone' do - input_filtered_search("bug author:@#{user.username} assignee:@#{user.username} label:~#{bug_label.title} label:~#{caps_sensitive_label.title} milestone:%#{milestone.title}") - - expect_issues_list_count(1) - expect_filtered_search_input('bug') - end - it 'filters issues by searched text, author, text, assignee, text, label1, text, label2, text, milestone and text' do - input_filtered_search("bug author:@#{user.username} assignee:@#{user.username} report label:~#{bug_label.title} label:~#{caps_sensitive_label.title} milestone:%#{milestone.title} foo") + input_filtered_search("bug author:@#{user.username} report label:~#{bug_label.title} label:~#{caps_sensitive_label.title} milestone:%#{milestone.title} foo") expect_issues_list_count(1) expect_filtered_search_input('bug report foo') @@ -746,7 +435,9 @@ describe 'Filter issues', js: true do end end - describe 'retains filter when switching issue states' do + describe 'switching issue states' do + let!(:closed_issue) { create(:issue, :closed, project: project, title: 'closed bug') } + before do input_filtered_search('bug') @@ -754,25 +445,21 @@ describe 'Filter issues', js: true do expect_issues_list_count(4, 1) end - it 'open state' do + it 'maintains filter' do + # Closed find('.issues-state-filters [data-state="closed"]').click wait_for_requests + expect(page).to have_selector('.issues-list .issue', count: 1) + expect(page).to have_link(closed_issue.title) + + # Opened find('.issues-state-filters [data-state="opened"]').click wait_for_requests expect(page).to have_selector('.issues-list .issue', count: 4) - end - it 'closed state' do - find('.issues-state-filters [data-state="closed"]').click - wait_for_requests - - expect(page).to have_selector('.issues-list .issue', count: 1) - expect(find('.issues-list .issue:first-of-type .issue-title-text a')).to have_content(closed_issue.title) - end - - it 'all state' do + # All find('.issues-state-filters [data-state="all"]').click wait_for_requests @@ -781,34 +468,39 @@ describe 'Filter issues', js: true do end describe 'RSS feeds' do - it 'updates atom feed link for project issues' do - visit project_issues_path(project, milestone_title: milestone.title, assignee_id: user.id) - link = find_link('Subscribe') - params = CGI.parse(URI.parse(link[:href]).query) - auto_discovery_link = find('link[type="application/atom+xml"]', visible: false) - auto_discovery_params = CGI.parse(URI.parse(auto_discovery_link[:href]).query) - - expect(params).to include('rss_token' => [user.rss_token]) - expect(params).to include('milestone_title' => [milestone.title]) - expect(params).to include('assignee_id' => [user.id.to_s]) - expect(auto_discovery_params).to include('rss_token' => [user.rss_token]) - expect(auto_discovery_params).to include('milestone_title' => [milestone.title]) - expect(auto_discovery_params).to include('assignee_id' => [user.id.to_s]) + let(:group) { create(:group) } + let(:project) { create(:project, group: group) } + + before do + group.add_developer(user) + end + + shared_examples 'updates atom feed link' do |type| + it "for #{type}" do + visit path + + link = find_link('Subscribe') + params = CGI.parse(URI.parse(link[:href]).query) + auto_discovery_link = find('link[type="application/atom+xml"]', visible: false) + auto_discovery_params = CGI.parse(URI.parse(auto_discovery_link[:href]).query) + + expected = { + 'rss_token' => [user.rss_token], + 'milestone_title' => [milestone.title], + 'assignee_id' => [user.id.to_s] + } + + expect(params).to include(expected) + expect(auto_discovery_params).to include(expected) + end + end + + it_behaves_like 'updates atom feed link', :project do + let(:path) { project_issues_path(project, milestone_title: milestone.title, assignee_id: user.id) } end - it 'updates atom feed link for group issues' do - visit issues_group_path(group, milestone_title: milestone.title, assignee_id: user.id) - link = find_link('Subscribe') - params = CGI.parse(URI.parse(link[:href]).query) - auto_discovery_link = find('link[type="application/atom+xml"]', visible: false) - auto_discovery_params = CGI.parse(URI.parse(auto_discovery_link[:href]).query) - - expect(params).to include('rss_token' => [user.rss_token]) - expect(params).to include('milestone_title' => [milestone.title]) - expect(params).to include('assignee_id' => [user.id.to_s]) - expect(auto_discovery_params).to include('rss_token' => [user.rss_token]) - expect(auto_discovery_params).to include('milestone_title' => [milestone.title]) - expect(auto_discovery_params).to include('assignee_id' => [user.id.to_s]) + it_behaves_like 'updates atom feed link', :group do + let(:path) { issues_group_path(group, milestone_title: milestone.title, assignee_id: user.id) } end end @@ -821,7 +513,7 @@ describe 'Filter issues', js: true do input_filtered_search("milestone:", submit: false) within('#js-dropdown-milestone') do - expect(page).to have_selector('.filter-dropdown .filter-dropdown-item', count: 2) + expect(page).to have_selector('.filter-dropdown .filter-dropdown-item', count: 1) end end @@ -829,7 +521,7 @@ describe 'Filter issues', js: true do input_filtered_search("label:", submit: false) within('#js-dropdown-label') do - expect(page).to have_selector('.filter-dropdown .filter-dropdown-item', count: 5) + expect(page).to have_selector('.filter-dropdown .filter-dropdown-item', count: 3) end end end diff --git a/spec/features/issues/filtered_search/visual_tokens_spec.rb b/spec/features/issues/filtered_search/visual_tokens_spec.rb index 14a555fde10..4ae54fd6f4e 100644 --- a/spec/features/issues/filtered_search/visual_tokens_spec.rb +++ b/spec/features/issues/filtered_search/visual_tokens_spec.rb @@ -28,6 +28,8 @@ describe 'Visual tokens', js: true do sign_in(user) create(:issue, project: project) + allow_any_instance_of(ApplicationHelper).to receive(:collapsed_sidebar?).and_return(true) + visit project_issues_path(project) end |