gitlab-org--gitlab-foss/spec/features/merge_requests/filter_by_labels_spec.rb

94 lines
2.6 KiB
Ruby
Raw Normal View History

2016-04-14 12:23:46 +00:00
require 'rails_helper'
feature 'Merge Request filtering by Labels', :js do
2017-02-15 22:13:53 +00:00
include FilteredSearchHelpers
include MergeRequestHelpers
let(:project) { create(:project, :public, :repository) }
let!(:user) { create(:user) }
2016-04-14 12:23:46 +00:00
let!(:label) { create(:label, project: project) }
let!(:bug) { create(:label, project: project, title: 'bug') }
let!(:feature) { create(:label, project: project, title: 'feature') }
let!(:enhancement) { create(:label, project: project, title: 'enhancement') }
let!(:mr1) { create(:merge_request, title: "Bugfix1", source_project: project, target_project: project, source_branch: "fix") }
let!(:mr2) { create(:merge_request, title: "Bugfix2", source_project: project, target_project: project, source_branch: "wip") }
let!(:mr3) { create(:merge_request, title: "Feature1", source_project: project, target_project: project, source_branch: "improve/awesome") }
before do
mr1.labels << bug
2016-04-14 12:23:46 +00:00
mr2.labels << bug
mr2.labels << enhancement
2016-04-14 12:23:46 +00:00
mr3.title = "Feature1"
mr3.labels << feature
2016-04-14 12:23:46 +00:00
project.add_master(user)
sign_in(user)
2016-04-14 12:23:46 +00:00
visit project_merge_requests_path(project)
2016-04-14 12:23:46 +00:00
end
context 'filter by label bug' do
2016-04-14 12:23:46 +00:00
before do
2017-02-15 22:13:53 +00:00
input_filtered_search('label:~bug')
2016-04-14 12:23:46 +00:00
end
it 'apply the filter' do
2016-04-14 12:23:46 +00:00
expect(page).to have_content "Bugfix1"
expect(page).to have_content "Bugfix2"
expect(page).not_to have_content "Feature1"
end
2016-04-14 12:23:46 +00:00
end
context 'filter by label feature' do
2016-04-14 12:23:46 +00:00
before do
2017-02-15 22:13:53 +00:00
input_filtered_search('label:~feature')
2016-04-14 12:23:46 +00:00
end
it 'applies the filter' do
2016-04-14 12:23:46 +00:00
expect(page).to have_content "Feature1"
expect(page).not_to have_content "Bugfix2"
expect(page).not_to have_content "Bugfix1"
end
end
context 'filter by label enhancement' do
2016-04-14 12:23:46 +00:00
before do
2017-02-15 22:13:53 +00:00
input_filtered_search('label:~enhancement')
2016-04-14 12:23:46 +00:00
end
it 'applies the filter' do
2016-04-14 12:23:46 +00:00
expect(page).to have_content "Bugfix2"
expect(page).not_to have_content "Feature1"
expect(page).not_to have_content "Bugfix1"
end
end
context 'filter by label enhancement and bug in issues list' do
2016-04-14 12:23:46 +00:00
before do
2017-03-07 20:37:22 +00:00
input_filtered_search('label:~bug label:~enhancement')
2016-04-14 12:23:46 +00:00
end
it 'applies the filters' do
expect(page).to have_issuable_counts(open: 1, closed: 0, all: 1)
expect(page).to have_content "Bugfix2"
expect(page).not_to have_content "Feature1"
2016-04-14 12:23:46 +00:00
end
end
2017-02-15 22:13:53 +00:00
context 'filter dropdown' do
it 'filters by label name' do
2017-02-15 22:13:53 +00:00
init_label_search
filtered_search.send_keys('~bug')
2017-02-15 22:13:53 +00:00
page.within '.filter-dropdown' do
expect(page).not_to have_content 'enhancement'
expect(page).to have_content 'bug'
end
end
end
2016-04-14 12:23:46 +00:00
end