Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-12-08 09:13:27 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-12-08 09:13:27 +0300
commit99bcbec56c2f7f8cc3028974ad1d6edcb16a9281 (patch)
tree352560a31119dc737993cce71ed8f5a8f24c698f /spec/features/boards
parent849d5912a8742c628df825043807ad891431cca1 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/features/boards')
-rw-r--r--spec/features/boards/board_filters_spec.rb99
1 files changed, 96 insertions, 3 deletions
diff --git a/spec/features/boards/board_filters_spec.rb b/spec/features/boards/board_filters_spec.rb
index 5215909c0da..d1aa9d1775d 100644
--- a/spec/features/boards/board_filters_spec.rb
+++ b/spec/features/boards/board_filters_spec.rb
@@ -6,14 +6,16 @@ RSpec.describe 'Issue board filters', :js do
let_it_be(:project) { create(:project, :repository) }
let_it_be(:user) { create(:user) }
let_it_be(:board) { create(:board, project: project) }
+ let_it_be(:project_label) { create(:label, project: project, title: 'Label') }
let_it_be(:milestone_1) { create(:milestone, project: project) }
let_it_be(:milestone_2) { create(:milestone, project: project) }
let_it_be(:release) { create(:release, tag: 'v1.0', project: project, milestones: [milestone_1]) }
let_it_be(:release_2) { create(:release, tag: 'v2.0', project: project, milestones: [milestone_2]) }
- let_it_be(:issue) { create(:issue, project: project, milestone: milestone_1) }
- let_it_be(:issue_2) { create(:issue, project: project, milestone: milestone_2) }
+ let_it_be(:issue_1) { create(:issue, project: project, milestone: milestone_1, author: user) }
+ let_it_be(:issue_2) { create(:labeled_issue, project: project, milestone: milestone_2, assignees: [user], labels: [project_label]) }
+ let_it_be(:award_emoji1) { create(:award_emoji, name: 'thumbsup', user: user, awardable: issue_1) }
- let(:filtered_search) { find('[data-testid="issue-board-filtered-search"]') }
+ let(:filtered_search) { find('[data-testid="issue_1-board-filtered-search"]') }
let(:filter_input) { find('.gl-filtered-search-term-input')}
let(:filter_dropdown) { find('.gl-filtered-search-suggestion-list') }
let(:filter_first_suggestion) { find('.gl-filtered-search-suggestion-list').first('.gl-filtered-search-suggestion') }
@@ -28,6 +30,58 @@ RSpec.describe 'Issue board filters', :js do
visit_project_board
end
+ shared_examples 'loads all the users when opened' do
+ it 'and submit one as filter', :aggregate_failures do
+ expect(find('.board:nth-child(1)')).to have_selector('.board-card', count: 2)
+
+ expect_filtered_search_dropdown_results(filter_dropdown, 3)
+
+ click_on user.username
+ filter_submit.click
+
+ expect(find('.board:nth-child(1)')).to have_selector('.board-card', count: 1)
+ expect(find('.board-card')).to have_content(issue.title)
+ end
+ end
+
+ describe 'filters by assignee' do
+ before do
+ set_filter('assignee')
+ end
+
+ it_behaves_like 'loads all the users when opened' do
+ let(:issue) { issue_2 }
+ end
+ end
+
+ describe 'filters by author' do
+ before do
+ set_filter('author')
+ end
+
+ it_behaves_like 'loads all the users when opened' do
+ let(:issue) { issue_1 }
+ end
+ end
+
+ describe 'filters by label' do
+ before do
+ set_filter('label')
+ end
+
+ it 'loads all the labels when opened and submit one as filter', :aggregate_failures do
+ expect(find('.board:nth-child(1)')).to have_selector('.board-card', count: 2)
+
+ expect_filtered_search_dropdown_results(filter_dropdown, 3)
+
+ filter_dropdown.click_on project_label.title
+ filter_submit.click
+
+ expect(find('.board:nth-child(1)')).to have_selector('.board-card', count: 1)
+ expect(find('.board-card')).to have_content(issue_2.title)
+ end
+ end
+
describe 'filters by releases' do
before do
set_filter('release')
@@ -42,6 +96,7 @@ RSpec.describe 'Issue board filters', :js do
filter_submit.click
expect(find('.board:nth-child(1)')).to have_selector('.board-card', count: 1)
+ expect(find('.board-card')).to have_content(issue_1.title)
end
end
@@ -68,6 +123,44 @@ RSpec.describe 'Issue board filters', :js do
end
end
+ describe 'filters by reaction emoji' do
+ before do
+ set_filter('my-reaction')
+ end
+
+ it 'loads all the emojis when opened and submit one as filter', :aggregate_failures do
+ expect(find('.board:nth-child(1)')).to have_selector('.board-card', count: 2)
+
+ expect_filtered_search_dropdown_results(filter_dropdown, 3)
+
+ click_on 'thumbsup'
+ filter_submit.click
+
+ expect(find('.board:nth-child(1)')).to have_selector('.board-card', count: 1)
+ expect(find('.board-card')).to have_content(issue_1.title)
+ end
+ end
+
+ describe 'filters by type' do
+ let_it_be(:incident) { create(:incident, project: project)}
+
+ before do
+ set_filter('type')
+ end
+
+ it 'loads all the types when opened and submit one as filter', :aggregate_failures do
+ expect(find('.board:nth-child(1)')).to have_selector('.board-card', count: 3)
+
+ expect_filtered_search_dropdown_results(filter_dropdown, 2)
+
+ click_on 'Incident'
+ filter_submit.click
+
+ expect(find('.board:nth-child(1)')).to have_selector('.board-card', count: 1)
+ expect(find('.board-card')).to have_content(incident.title)
+ end
+ end
+
def set_filter(filter)
filter_input.click
filter_input.set("#{filter}:")