summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-09-20 16:33:34 +0000
committerRuben Davila <rdavila84@gmail.com>2016-09-20 11:51:50 -0500
commit4984c8d669440bd9cbbcc4dd15d969610fb6c9dd (patch)
tree0d87ea0edda7d6ffc268b70476b308612cb67d2e /spec
parent81978178ddbf92a6a87456c2622e7b22cb7f0b1a (diff)
downloadgitlab-ce-4984c8d669440bd9cbbcc4dd15d969610fb6c9dd.tar.gz
Merge branch 'update_issues_mr_counter' into 'master'
Fix issues with wrong issues/merge request counts when filters are selected Closes #15356 plus counter for issues and MR are now displayed for the these paths `https://gitlab.com/groups/group-name/issues` `https://gitlab.com/groups/group-name/merge_requests` `https://gitlab.com/dashboard/issues` and `https://gitlab.com/dashboard/merge_requests` See merge request !4960
Diffstat (limited to 'spec')
-rw-r--r--spec/features/dashboard_issues_spec.rb9
-rw-r--r--spec/features/issues/filter_issues_spec.rb44
-rw-r--r--spec/features/issues/reset_filters_spec.rb4
-rw-r--r--spec/finders/issues_finder_spec.rb20
4 files changed, 67 insertions, 10 deletions
diff --git a/spec/features/dashboard_issues_spec.rb b/spec/features/dashboard_issues_spec.rb
index 3fb1cb37544..fc914022a59 100644
--- a/spec/features/dashboard_issues_spec.rb
+++ b/spec/features/dashboard_issues_spec.rb
@@ -21,6 +21,9 @@ describe "Dashboard Issues filtering", feature: true, js: true do
click_link 'No Milestone'
+ page.within '.issues-state-filters' do
+ expect(page).to have_selector('.active .badge', text: '1')
+ end
expect(page).to have_selector('.issue', count: 1)
end
@@ -29,6 +32,9 @@ describe "Dashboard Issues filtering", feature: true, js: true do
click_link 'Any Milestone'
+ page.within '.issues-state-filters' do
+ expect(page).to have_selector('.active .badge', text: '2')
+ end
expect(page).to have_selector('.issue', count: 2)
end
@@ -39,6 +45,9 @@ describe "Dashboard Issues filtering", feature: true, js: true do
click_link milestone.title
end
+ page.within '.issues-state-filters' do
+ expect(page).to have_selector('.active .badge', text: '1')
+ end
expect(page).to have_selector('.issue', count: 1)
end
end
diff --git a/spec/features/issues/filter_issues_spec.rb b/spec/features/issues/filter_issues_spec.rb
index 69fda27cc61..72f39e2fbca 100644
--- a/spec/features/issues/filter_issues_spec.rb
+++ b/spec/features/issues/filter_issues_spec.rb
@@ -206,7 +206,7 @@ describe 'Filter issues', feature: true do
context 'only text', js: true do
it 'filters issues by searched text' do
- fill_in 'issue_search', with: 'Bug'
+ fill_in 'issuable_search', with: 'Bug'
page.within '.issues-list' do
expect(page).to have_selector('.issue', count: 2)
@@ -214,7 +214,7 @@ describe 'Filter issues', feature: true do
end
it 'does not show any issues' do
- fill_in 'issue_search', with: 'testing'
+ fill_in 'issuable_search', with: 'testing'
page.within '.issues-list' do
expect(page).not_to have_selector('.issue')
@@ -224,12 +224,16 @@ describe 'Filter issues', feature: true do
context 'text and dropdown options', js: true do
it 'filters by text and label' do
- fill_in 'issue_search', with: 'Bug'
+ fill_in 'issuable_search', with: 'Bug'
page.within '.issues-list' do
expect(page).to have_selector('.issue', count: 2)
end
+ page.within '.issues-state-filters' do
+ expect(page).to have_selector('.active .badge', text: '2')
+ end
+
click_button 'Label'
page.within '.labels-filter' do
click_link 'bug'
@@ -239,15 +243,23 @@ describe 'Filter issues', feature: true do
page.within '.issues-list' do
expect(page).to have_selector('.issue', count: 1)
end
+
+ page.within '.issues-state-filters' do
+ expect(page).to have_selector('.active .badge', text: '1')
+ end
end
it 'filters by text and milestone' do
- fill_in 'issue_search', with: 'Bug'
+ fill_in 'issuable_search', with: 'Bug'
page.within '.issues-list' do
expect(page).to have_selector('.issue', count: 2)
end
+ page.within '.issues-state-filters' do
+ expect(page).to have_selector('.active .badge', text: '2')
+ end
+
click_button 'Milestone'
page.within '.milestone-filter' do
click_link '8'
@@ -256,15 +268,23 @@ describe 'Filter issues', feature: true do
page.within '.issues-list' do
expect(page).to have_selector('.issue', count: 1)
end
+
+ page.within '.issues-state-filters' do
+ expect(page).to have_selector('.active .badge', text: '1')
+ end
end
it 'filters by text and assignee' do
- fill_in 'issue_search', with: 'Bug'
+ fill_in 'issuable_search', with: 'Bug'
page.within '.issues-list' do
expect(page).to have_selector('.issue', count: 2)
end
+ page.within '.issues-state-filters' do
+ expect(page).to have_selector('.active .badge', text: '2')
+ end
+
click_button 'Assignee'
page.within '.dropdown-menu-assignee' do
click_link user.name
@@ -273,15 +293,23 @@ describe 'Filter issues', feature: true do
page.within '.issues-list' do
expect(page).to have_selector('.issue', count: 1)
end
+
+ page.within '.issues-state-filters' do
+ expect(page).to have_selector('.active .badge', text: '1')
+ end
end
it 'filters by text and author' do
- fill_in 'issue_search', with: 'Bug'
+ fill_in 'issuable_search', with: 'Bug'
page.within '.issues-list' do
expect(page).to have_selector('.issue', count: 2)
end
+ page.within '.issues-state-filters' do
+ expect(page).to have_selector('.active .badge', text: '2')
+ end
+
click_button 'Author'
page.within '.dropdown-menu-author' do
click_link user.name
@@ -290,6 +318,10 @@ describe 'Filter issues', feature: true do
page.within '.issues-list' do
expect(page).to have_selector('.issue', count: 1)
end
+
+ page.within '.issues-state-filters' do
+ expect(page).to have_selector('.active .badge', text: '1')
+ end
end
end
end
diff --git a/spec/features/issues/reset_filters_spec.rb b/spec/features/issues/reset_filters_spec.rb
index 41f218eaa8b..f4d0f13c3d5 100644
--- a/spec/features/issues/reset_filters_spec.rb
+++ b/spec/features/issues/reset_filters_spec.rb
@@ -37,7 +37,7 @@ feature 'Issues filter reset button', feature: true, js: true do
context 'when a text search has been conducted' do
it 'resets the text search filter' do
- visit_issues(project, issue_search: 'Bug')
+ visit_issues(project, search: 'Bug')
expect(page).to have_css('.issue', count: 1)
reset_filters
@@ -67,7 +67,7 @@ feature 'Issues filter reset button', feature: true, js: true do
context 'when all filters have been applied' do
it 'resets all filters' do
- visit_issues(project, assignee_id: user.id, author_id: user.id, milestone_title: milestone.title, label_name: bug.name, issue_search: 'Bug')
+ visit_issues(project, assignee_id: user.id, author_id: user.id, milestone_title: milestone.title, label_name: bug.name, search: 'Bug')
expect(page).to have_css('.issue', count: 0)
reset_filters
diff --git a/spec/finders/issues_finder_spec.rb b/spec/finders/issues_finder_spec.rb
index ec8809e6926..40bccb8e50b 100644
--- a/spec/finders/issues_finder_spec.rb
+++ b/spec/finders/issues_finder_spec.rb
@@ -7,8 +7,8 @@ describe IssuesFinder do
let(:project2) { create(:empty_project) }
let(:milestone) { create(:milestone, project: project1) }
let(:label) { create(:label, project: project2) }
- let(:issue1) { create(:issue, author: user, assignee: user, project: project1, milestone: milestone) }
- let(:issue2) { create(:issue, author: user, assignee: user, project: project2) }
+ let(:issue1) { create(:issue, author: user, assignee: user, project: project1, milestone: milestone, title: 'gitlab') }
+ let(:issue2) { create(:issue, author: user, assignee: user, project: project2, description: 'gitlab') }
let(:issue3) { create(:issue, author: user2, assignee: user2, project: project2) }
let!(:label_link) { create(:label_link, label: label, target: issue2) }
@@ -127,6 +127,22 @@ describe IssuesFinder do
end
end
+ context 'filtering by issue term' do
+ let(:params) { { search: 'git' } }
+
+ it 'returns issues with title and description match for search term' do
+ expect(issues).to contain_exactly(issue1, issue2)
+ end
+ end
+
+ context 'filtering by issue iid' do
+ let(:params) { { search: issue3.to_reference } }
+
+ it 'returns issue with iid match' do
+ expect(issues).to contain_exactly(issue3)
+ end
+ end
+
context 'when the user is unauthorized' do
let(:search_user) { nil }