diff options
Diffstat (limited to 'spec/services/merge_requests')
13 files changed, 55 insertions, 66 deletions
diff --git a/spec/services/merge_requests/after_create_service_spec.rb b/spec/services/merge_requests/after_create_service_spec.rb index f477b2166d9..f2823b1f0c7 100644 --- a/spec/services/merge_requests/after_create_service_spec.rb +++ b/spec/services/merge_requests/after_create_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::AfterCreateService do +RSpec.describe MergeRequests::AfterCreateService, feature_category: :code_review_workflow do let_it_be(:merge_request) { create(:merge_request) } subject(:after_create_service) do @@ -126,6 +126,17 @@ RSpec.describe MergeRequests::AfterCreateService do end end + it 'updates the prepared_at' do + # Need to reset the `prepared_at` since it can be already set in preceding tests. + merge_request.update!(prepared_at: nil) + + freeze_time do + expect { execute_service }.to change { merge_request.prepared_at } + .from(nil) + .to(Time.current) + end + end + it 'increments the usage data counter of create event' do counter = Gitlab::UsageDataCounters::MergeRequestCounter diff --git a/spec/services/merge_requests/build_service_spec.rb b/spec/services/merge_requests/build_service_spec.rb index 79c779678a4..0fcfc16af73 100644 --- a/spec/services/merge_requests/build_service_spec.rb +++ b/spec/services/merge_requests/build_service_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -RSpec.describe MergeRequests::BuildService do +RSpec.describe MergeRequests::BuildService, feature_category: :code_review_workflow do using RSpec::Parameterized::TableSyntax include RepoHelpers include ProjectForksHelper diff --git a/spec/services/merge_requests/close_service_spec.rb b/spec/services/merge_requests/close_service_spec.rb index b3c4ed4c544..2c0817550c6 100644 --- a/spec/services/merge_requests/close_service_spec.rb +++ b/spec/services/merge_requests/close_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::CloseService do +RSpec.describe MergeRequests::CloseService, feature_category: :code_review_workflow do let(:user) { create(:user) } let(:user2) { create(:user) } let(:guest) { create(:user) } diff --git a/spec/services/merge_requests/create_from_issue_service_spec.rb b/spec/services/merge_requests/create_from_issue_service_spec.rb index 0eefbed252b..7bb0dd723a1 100644 --- a/spec/services/merge_requests/create_from_issue_service_spec.rb +++ b/spec/services/merge_requests/create_from_issue_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::CreateFromIssueService do +RSpec.describe MergeRequests::CreateFromIssueService, feature_category: :code_review_workflow do include ProjectForksHelper let(:project) { create(:project, :repository) } diff --git a/spec/services/merge_requests/create_pipeline_service_spec.rb b/spec/services/merge_requests/create_pipeline_service_spec.rb index 7984fff3031..f11e3d0d1df 100644 --- a/spec/services/merge_requests/create_pipeline_service_spec.rb +++ b/spec/services/merge_requests/create_pipeline_service_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe MergeRequests::CreatePipelineService, :clean_gitlab_redis_cache do include ProjectForksHelper - let_it_be(:project, reload: true) { create(:project, :repository) } + let_it_be(:project, refind: true) { create(:project, :repository) } let_it_be(:user) { create(:user) } let(:service) { described_class.new(project: project, current_user: actor, params: params) } diff --git a/spec/services/merge_requests/create_service_spec.rb b/spec/services/merge_requests/create_service_spec.rb index da8e8d944d6..394fc269ac3 100644 --- a/spec/services/merge_requests/create_service_spec.rb +++ b/spec/services/merge_requests/create_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::CreateService, :clean_gitlab_redis_shared_state do +RSpec.describe MergeRequests::CreateService, :clean_gitlab_redis_shared_state, feature_category: :code_review_workflow do include ProjectForksHelper let(:project) { create(:project, :repository) } @@ -501,40 +501,12 @@ RSpec.describe MergeRequests::CreateService, :clean_gitlab_redis_shared_state do project.add_developer(user) end - context 'when async_merge_request_diff_creation is enabled' do - before do - stub_feature_flags(async_merge_request_diff_creation: true) - end - - it 'creates the merge request', :sidekiq_inline do - expect_next_instance_of(MergeRequest) do |instance| - expect(instance).not_to receive(:eager_fetch_ref!) - end - - merge_request = described_class.new(project: project, current_user: user, params: opts).execute - - expect(merge_request).to be_persisted - expect(merge_request.iid).to be > 0 - expect(merge_request.merge_request_diff).not_to be_empty - end - end - - context 'when async_merge_request_diff_creation is disabled' do - before do - stub_feature_flags(async_merge_request_diff_creation: false) - end - - it 'creates the merge request' do - expect_next_instance_of(MergeRequest) do |instance| - expect(instance).to receive(:eager_fetch_ref!).and_call_original - end - - merge_request = described_class.new(project: project, current_user: user, params: opts).execute + it 'creates the merge request', :sidekiq_inline do + merge_request = described_class.new(project: project, current_user: user, params: opts).execute - expect(merge_request).to be_persisted - expect(merge_request.iid).to be > 0 - expect(merge_request.merge_request_diff).not_to be_empty - end + expect(merge_request).to be_persisted + expect(merge_request.iid).to be > 0 + expect(merge_request.merge_request_diff).not_to be_empty end it 'does not create the merge request when the target project is archived' do diff --git a/spec/services/merge_requests/export_csv_service_spec.rb b/spec/services/merge_requests/export_csv_service_spec.rb index 97217e979a5..2f0036845e7 100644 --- a/spec/services/merge_requests/export_csv_service_spec.rb +++ b/spec/services/merge_requests/export_csv_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::ExportCsvService do +RSpec.describe MergeRequests::ExportCsvService, feature_category: :importers do let_it_be(:merge_request) { create(:merge_request) } let(:csv) { CSV.parse(subject.csv_data, headers: true).first } @@ -113,5 +113,21 @@ RSpec.describe MergeRequests::ExportCsvService do end end end + + describe '#email' do + let_it_be(:user) { create(:user) } + + it 'emails csv' do + expect { subject.email(user) }.to change { ActionMailer::Base.deliveries.count } + end + + it 'renders with a target filesize' do + expect_next_instance_of(CsvBuilder) do |csv_builder| + expect(csv_builder).to receive(:render).with(described_class::TARGET_FILESIZE).once + end + + subject.email(user) + end + end end end diff --git a/spec/services/merge_requests/link_lfs_objects_service_spec.rb b/spec/services/merge_requests/link_lfs_objects_service_spec.rb index 96cb72baac2..9762b600eab 100644 --- a/spec/services/merge_requests/link_lfs_objects_service_spec.rb +++ b/spec/services/merge_requests/link_lfs_objects_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::LinkLfsObjectsService, :sidekiq_inline do +RSpec.describe MergeRequests::LinkLfsObjectsService, :sidekiq_inline, feature_category: :code_review_workflow do include ProjectForksHelper include RepoHelpers diff --git a/spec/services/merge_requests/pushed_branches_service_spec.rb b/spec/services/merge_requests/pushed_branches_service_spec.rb index 59424263ec5..cb5d0a6bd25 100644 --- a/spec/services/merge_requests/pushed_branches_service_spec.rb +++ b/spec/services/merge_requests/pushed_branches_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::PushedBranchesService do +RSpec.describe MergeRequests::PushedBranchesService, feature_category: :source_code_management do let(:project) { create(:project) } let!(:service) { described_class.new(project: project, current_user: nil, params: { changes: pushed_branches }) } diff --git a/spec/services/merge_requests/rebase_service_spec.rb b/spec/services/merge_requests/rebase_service_spec.rb index 316f20d8276..704dc1f9000 100644 --- a/spec/services/merge_requests/rebase_service_spec.rb +++ b/spec/services/merge_requests/rebase_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::RebaseService do +RSpec.describe MergeRequests::RebaseService, feature_category: :source_code_management do include ProjectForksHelper let(:user) { create(:user) } diff --git a/spec/services/merge_requests/remove_approval_service_spec.rb b/spec/services/merge_requests/remove_approval_service_spec.rb index fd8240935e8..e4e54db5013 100644 --- a/spec/services/merge_requests/remove_approval_service_spec.rb +++ b/spec/services/merge_requests/remove_approval_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::RemoveApprovalService do +RSpec.describe MergeRequests::RemoveApprovalService, feature_category: :code_review_workflow do describe '#execute' do let(:user) { create(:user) } let(:project) { create(:project) } diff --git a/spec/services/merge_requests/retarget_chain_service_spec.rb b/spec/services/merge_requests/retarget_chain_service_spec.rb index 187dd0cf589..ef8cd0a861e 100644 --- a/spec/services/merge_requests/retarget_chain_service_spec.rb +++ b/spec/services/merge_requests/retarget_chain_service_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequests::RetargetChainService do +RSpec.describe MergeRequests::RetargetChainService, feature_category: :code_review_workflow do include ProjectForksHelper let_it_be(:user) { create(:user) } diff --git a/spec/services/merge_requests/update_service_spec.rb b/spec/services/merge_requests/update_service_spec.rb index 344d93fc5ca..e20ebf18e7c 100644 --- a/spec/services/merge_requests/update_service_spec.rb +++ b/spec/services/merge_requests/update_service_spec.rb @@ -196,7 +196,7 @@ RSpec.describe MergeRequests::UpdateService, :mailer, feature_category: :code_re expect(Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter) .to receive(:track_milestone_changed_action).once.with(user: user) - opts[:milestone] = milestone + opts[:milestone_id] = milestone.id MergeRequests::UpdateService.new(project: project, current_user: user, params: opts).execute(merge_request) end @@ -236,27 +236,17 @@ RSpec.describe MergeRequests::UpdateService, :mailer, feature_category: :code_re end context 'updating milestone' do - RSpec.shared_examples 'updates milestone' do + context 'with milestone_id param' do + let(:opts) { { milestone_id: milestone.id } } + it 'sets milestone' do expect(@merge_request.milestone).to eq milestone end end - context 'when milestone_id param' do - let(:opts) { { milestone_id: milestone.id } } - - it_behaves_like 'updates milestone' - end - - context 'when milestone param' do - let(:opts) { { milestone: milestone } } - - it_behaves_like 'updates milestone' - end - context 'milestone counters cache reset' do let(:milestone_old) { create(:milestone, project: project) } - let(:opts) { { milestone: milestone_old } } + let(:opts) { { milestone_id: milestone_old.id } } it 'deletes milestone counters' do expect_next_instance_of(Milestones::MergeRequestsCountService, milestone_old) do |service| @@ -267,7 +257,7 @@ RSpec.describe MergeRequests::UpdateService, :mailer, feature_category: :code_re expect(service).to receive(:delete_cache).and_call_original end - update_merge_request(milestone: milestone) + update_merge_request(milestone_id: milestone.id) end it 'deletes milestone counters when the milestone is removed' do @@ -275,17 +265,17 @@ RSpec.describe MergeRequests::UpdateService, :mailer, feature_category: :code_re expect(service).to receive(:delete_cache).and_call_original end - update_merge_request(milestone: nil) + update_merge_request(milestone_id: nil) end it 'deletes milestone counters when the milestone was not set' do - update_merge_request(milestone: nil) + update_merge_request(milestone_id: nil) expect_next_instance_of(Milestones::MergeRequestsCountService, milestone) do |service| expect(service).to receive(:delete_cache).and_call_original end - update_merge_request(milestone: milestone) + update_merge_request(milestone_id: milestone.id) end end end @@ -754,12 +744,12 @@ RSpec.describe MergeRequests::UpdateService, :mailer, feature_category: :code_re expect(service).to receive(:async_execute) end - update_merge_request({ milestone: create(:milestone, project: project) }) + update_merge_request(milestone_id: create(:milestone, project: project).id) end it 'sends notifications for subscribers of changed milestone', :sidekiq_might_not_need_inline do perform_enqueued_jobs do - update_merge_request(milestone: create(:milestone, project: project)) + update_merge_request(milestone_id: create(:milestone, project: project).id) end should_email(subscriber) |