debian-mirror-gitlab/spec/features/merge_requests/user_lists_merge_requests_spec.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

186 lines
6.1 KiB
Ruby
Raw Normal View History

2019-10-12 21:52:04 +05:30
# frozen_string_literal: true
2019-12-04 20:38:33 +05:30
require 'spec_helper'
2016-06-02 11:05:42 +05:30
2020-06-23 00:09:42 +05:30
RSpec.describe 'Merge requests > User lists merge requests' do
2016-09-13 17:45:13 +05:30
include MergeRequestHelpers
2016-06-02 11:05:42 +05:30
include SortingHelper
2017-09-10 17:25:29 +05:30
let(:project) { create(:project, :public, :repository) }
2016-06-02 11:05:42 +05:30
let(:user) { create(:user) }
2021-01-03 14:25:43 +05:30
let(:user2) { create(:user) }
let(:user3) { create(:user) }
let(:user4) { create(:user) }
let(:user5) { create(:user) }
2016-06-02 11:05:42 +05:30
before do
@fix = create(:merge_request,
title: 'fix',
source_project: project,
source_branch: 'fix',
2019-07-31 22:56:46 +05:30
assignees: [user],
2021-01-03 14:25:43 +05:30
reviewers: [user, user2, user3, user4, user5],
2019-03-13 22:55:13 +05:30
milestone: create(:milestone, project: project, due_date: '2013-12-11'),
2016-06-02 11:05:42 +05:30
created_at: 1.minute.ago,
updated_at: 1.minute.ago)
2021-10-27 15:23:28 +05:30
@fix.metrics.update!(merged_at: 10.seconds.ago, latest_closed_at: 10.seconds.ago)
2021-09-30 23:02:18 +05:30
@markdown = create(:merge_request,
2016-06-02 11:05:42 +05:30
title: 'markdown',
source_project: project,
source_branch: 'markdown',
2019-07-31 22:56:46 +05:30
assignees: [user],
2021-01-03 14:25:43 +05:30
reviewers: [user, user2, user3, user4],
2019-03-13 22:55:13 +05:30
milestone: create(:milestone, project: project, due_date: '2013-12-12'),
2016-06-02 11:05:42 +05:30
created_at: 2.minutes.ago,
updated_at: 2.minutes.ago)
2021-10-27 15:23:28 +05:30
@markdown.metrics.update!(merged_at: 10.minutes.ago, latest_closed_at: 10.seconds.ago)
2021-09-30 23:02:18 +05:30
@merge_test = create(:merge_request,
2018-03-17 18:26:18 +05:30
title: 'merge-test',
2016-06-02 11:05:42 +05:30
source_project: project,
2018-03-17 18:26:18 +05:30
source_branch: 'merge-test',
2016-06-02 11:05:42 +05:30
created_at: 3.minutes.ago,
updated_at: 10.seconds.ago)
2021-10-27 15:23:28 +05:30
@merge_test.metrics.update!(merged_at: 10.seconds.ago, latest_closed_at: 10.seconds.ago)
@feature = create(:merge_request,
title: 'feature',
source_project: project,
source_branch: 'feautre',
created_at: 2.minutes.ago,
updated_at: 1.minute.ago)
@feature.metrics.update!(merged_at: 10.seconds.ago, latest_closed_at: 10.minutes.ago)
2016-06-02 11:05:42 +05:30
end
2021-03-11 19:13:27 +05:30
context 'merge request reviewers' do
2021-01-03 14:25:43 +05:30
before do
visit_merge_requests(project, reviewer_id: user.id)
end
it 'has reviewers in MR list' do
expect(page).to have_css('.issuable-reviewers')
end
it 'shows reviewers avatar count badge if more_reviewers_count > 4' do
first_issuable_reviewers = first('.issuable-reviewers')
expect(first_issuable_reviewers).to have_content('2')
expect(first_issuable_reviewers).to have_css('.avatar-counter')
end
it 'does not show reviewers avatar count badge if more_reviewers_count <= 4' do
expect(page.all('.issuable-reviewers')[1]).not_to have_css('.avatar-counter')
end
end
2016-06-02 11:05:42 +05:30
it 'filters on no assignee' do
2020-04-22 19:07:51 +05:30
visit_merge_requests(project, assignee_id: IssuableFinder::Params::FILTER_NONE)
2016-06-02 11:05:42 +05:30
2022-05-07 20:08:51 +05:30
expect(page).to have_current_path(project_merge_requests_path(project), ignore_query: true)
2018-03-17 18:26:18 +05:30
expect(page).to have_content 'merge-test'
2021-10-27 15:23:28 +05:30
expect(page).to have_content 'feature'
2016-06-02 11:05:42 +05:30
expect(page).not_to have_content 'fix'
expect(page).not_to have_content 'markdown'
2021-10-27 15:23:28 +05:30
expect(count_merge_requests).to eq(2)
2016-06-02 11:05:42 +05:30
end
it 'filters on a specific assignee' do
visit_merge_requests(project, assignee_id: user.id)
2018-03-17 18:26:18 +05:30
expect(page).not_to have_content 'merge-test'
2016-06-02 11:05:42 +05:30
expect(page).to have_content 'fix'
expect(page).to have_content 'markdown'
expect(count_merge_requests).to eq(2)
end
it 'sorts by newest' do
2018-03-17 18:26:18 +05:30
visit_merge_requests(project, sort: sort_value_created_date)
2016-06-02 11:05:42 +05:30
2016-09-13 17:45:13 +05:30
expect(first_merge_request).to include('fix')
2018-03-17 18:26:18 +05:30
expect(last_merge_request).to include('merge-test')
2021-10-27 15:23:28 +05:30
expect(count_merge_requests).to eq(4)
2016-06-02 11:05:42 +05:30
end
it 'sorts by last updated' do
visit_merge_requests(project, sort: sort_value_recently_updated)
2018-03-17 18:26:18 +05:30
expect(first_merge_request).to include('merge-test')
2021-10-27 15:23:28 +05:30
expect(count_merge_requests).to eq(4)
2016-06-02 11:05:42 +05:30
end
2022-07-16 23:28:13 +05:30
it 'sorts by milestone due date' do
2018-03-17 18:26:18 +05:30
visit_merge_requests(project, sort: sort_value_milestone)
2016-06-02 11:05:42 +05:30
expect(first_merge_request).to include('fix')
2021-10-27 15:23:28 +05:30
expect(count_merge_requests).to eq(4)
2016-06-02 11:05:42 +05:30
end
2021-09-30 23:02:18 +05:30
it 'sorts by merged at' do
visit_merge_requests(project, sort: sort_value_merged_date)
expect(first_merge_request).to include('markdown')
2021-10-27 15:23:28 +05:30
expect(count_merge_requests).to eq(4)
end
it 'sorts by closed at' do
visit_merge_requests(project, sort: sort_value_closed_date)
expect(first_merge_request).to include('feature')
expect(count_merge_requests).to eq(4)
2021-09-30 23:02:18 +05:30
end
2022-07-16 23:28:13 +05:30
it 'filters on one label and sorts by milestone due date' do
2016-06-02 11:05:42 +05:30
label = create(:label, project: project)
create(:label_link, label: label, target: @fix)
visit_merge_requests(project, label_name: [label.name],
2022-07-16 23:28:13 +05:30
sort: sort_value_milestone)
2016-06-02 11:05:42 +05:30
expect(first_merge_request).to include('fix')
expect(count_merge_requests).to eq(1)
end
context 'while filtering on two labels' do
let(:label) { create(:label, project: project) }
let(:label2) { create(:label, project: project) }
before do
create(:label_link, label: label, target: @fix)
create(:label_link, label: label2, target: @fix)
end
2022-07-16 23:28:13 +05:30
it 'sorts by milestone due date' do
2016-06-02 11:05:42 +05:30
visit_merge_requests(project, label_name: [label.name, label2.name],
2022-07-16 23:28:13 +05:30
sort: sort_value_milestone)
2016-06-02 11:05:42 +05:30
expect(first_merge_request).to include('fix')
expect(count_merge_requests).to eq(1)
end
context 'filter on assignee and' do
2022-07-16 23:28:13 +05:30
it 'sorts by milestone due date' do
2016-06-02 11:05:42 +05:30
visit_merge_requests(project, label_name: [label.name, label2.name],
assignee_id: user.id,
2022-07-16 23:28:13 +05:30
sort: sort_value_milestone)
2016-06-02 11:05:42 +05:30
expect(first_merge_request).to include('fix')
expect(count_merge_requests).to eq(1)
end
it 'sorts by recently due milestone' do
2017-09-10 17:25:29 +05:30
visit project_merge_requests_path(project,
label_name: [label.name, label2.name],
assignee_id: user.id,
2018-03-17 18:26:18 +05:30
sort: sort_value_milestone)
expect(first_merge_request).to include('fix')
end
2016-06-02 11:05:42 +05:30
end
end
def count_merge_requests
page.all('ul.mr-list > li').count
end
end