blob: 56179b6cd001a0aa29d536b6fb486fa4240ded5a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# frozen_string_literal: true
RSpec.shared_examples 'reviewer_ids filter' do
context 'filter_reviewer' do
let(:opts) { super().merge(reviewer_ids_param) }
context 'without reviewer_ids' do
let(:reviewer_ids_param) { {} }
it 'contains no reviewer_ids' do
expect(execute.reviewers).to eq []
end
end
context 'with reviewer_ids' do
let(:reviewer_ids_param) { { reviewer_ids: [reviewer1.id, reviewer2.id] } }
let(:reviewer1) { create(:user) }
let(:reviewer2) { create(:user) }
context 'when the current user can admin the merge_request' do
context 'when merge_request_reviewer feature is enabled' do
before do
stub_feature_flags(merge_request_reviewer: true)
end
context 'with a reviewer who can read the merge_request' do
before do
project.add_developer(reviewer1)
end
it 'contains reviewers who can read the merge_request' do
expect(execute.reviewers).to contain_exactly(reviewer1)
end
end
end
context 'when merge_request_reviewer feature is disabled' do
before do
stub_feature_flags(merge_request_reviewer: false)
end
it 'contains no reviewers' do
expect(execute.reviewers).to eq []
end
end
end
context 'when the current_user cannot admin the merge_request' do
before do
project.add_developer(user)
end
it 'contains no reviewers' do
expect(execute.reviewers).to eq []
end
end
end
end
end
RSpec.shared_examples 'merge request reviewers cache counters invalidator' do
let(:reviewer_1) { create(:user) }
let(:reviewer_2) { create(:user) }
before do
merge_request.update!(reviewers: [reviewer_1, reviewer_2])
end
it 'invalidates counter cache for reviewers' do
expect(merge_request.reviewers).to all(receive(:invalidate_merge_request_cache_counts))
described_class.new(project, user, {}).execute(merge_request)
end
end
|