diff options
Diffstat (limited to 'spec/services/merge_requests/remove_attention_requested_service_spec.rb')
-rw-r--r-- | spec/services/merge_requests/remove_attention_requested_service_spec.rb | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/spec/services/merge_requests/remove_attention_requested_service_spec.rb b/spec/services/merge_requests/remove_attention_requested_service_spec.rb index 875afc2dc7e..450204ebfdd 100644 --- a/spec/services/merge_requests/remove_attention_requested_service_spec.rb +++ b/spec/services/merge_requests/remove_attention_requested_service_spec.rb @@ -4,23 +4,20 @@ require 'spec_helper' RSpec.describe MergeRequests::RemoveAttentionRequestedService do let(:current_user) { create(:user) } - let(:user) { create(:user) } - let(:assignee_user) { create(:user) } - let(:merge_request) { create(:merge_request, reviewers: [user], assignees: [assignee_user]) } - let(:reviewer) { merge_request.find_reviewer(user) } - let(:assignee) { merge_request.find_assignee(assignee_user) } + let(:merge_request) { create(:merge_request, reviewers: [current_user], assignees: [current_user]) } + let(:reviewer) { merge_request.find_reviewer(current_user) } + let(:assignee) { merge_request.find_assignee(current_user) } let(:project) { merge_request.project } - let(:service) { described_class.new(project: project, current_user: current_user, merge_request: merge_request, user: user) } + let(:service) { described_class.new(project: project, current_user: current_user, merge_request: merge_request) } let(:result) { service.execute } before do project.add_developer(current_user) - project.add_developer(user) end describe '#execute' do context 'invalid permissions' do - let(:service) { described_class.new(project: project, current_user: create(:user), merge_request: merge_request, user: user) } + let(:service) { described_class.new(project: project, current_user: create(:user), merge_request: merge_request) } it 'returns an error' do expect(result[:status]).to eq :error @@ -28,7 +25,7 @@ RSpec.describe MergeRequests::RemoveAttentionRequestedService do end context 'reviewer does not exist' do - let(:service) { described_class.new(project: project, current_user: current_user, merge_request: merge_request, user: create(:user)) } + let(:service) { described_class.new(project: project, current_user: create(:user), merge_request: merge_request) } it 'returns an error' do expect(result[:status]).to eq :error @@ -46,10 +43,14 @@ RSpec.describe MergeRequests::RemoveAttentionRequestedService do expect(reviewer.state).to eq 'reviewed' end + + it_behaves_like 'invalidates attention request cache' do + let(:users) { [current_user] } + end end context 'assignee exists' do - let(:service) { described_class.new(project: project, current_user: current_user, merge_request: merge_request, user: assignee_user) } + let(:service) { described_class.new(project: project, current_user: current_user, merge_request: merge_request) } before do assignee.update!(state: :reviewed) @@ -65,12 +66,16 @@ RSpec.describe MergeRequests::RemoveAttentionRequestedService do expect(assignee.state).to eq 'reviewed' end + + it_behaves_like 'invalidates attention request cache' do + let(:users) { [current_user] } + end end context 'assignee is the same as reviewer' do - let(:merge_request) { create(:merge_request, reviewers: [user], assignees: [user]) } - let(:service) { described_class.new(project: project, current_user: current_user, merge_request: merge_request, user: user) } - let(:assignee) { merge_request.find_assignee(user) } + let(:merge_request) { create(:merge_request, reviewers: [current_user], assignees: [current_user]) } + let(:service) { described_class.new(project: project, current_user: current_user, merge_request: merge_request) } + let(:assignee) { merge_request.find_assignee(current_user) } it 'updates reviewers and assignees state' do service.execute |