Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/projects/merge_requests_controller_spec.rb')
-rw-r--r--spec/controllers/projects/merge_requests_controller_spec.rb49
1 files changed, 38 insertions, 11 deletions
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index 93d5e7eff6c..337a4a19b2e 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -8,6 +8,7 @@ RSpec.describe Projects::MergeRequestsController do
let_it_be_with_refind(:project) { create(:project, :repository) }
let_it_be_with_reload(:project_public_with_private_builds) { create(:project, :repository, :public, :builds_private) }
+
let(:user) { project.owner }
let(:merge_request) { create(:merge_request_with_diffs, target_project: project, source_project: project) }
@@ -40,6 +41,32 @@ RSpec.describe Projects::MergeRequestsController do
get :show, params: params.merge(extra_params)
end
+ context 'with the invite_members_in_comment experiment', :experiment do
+ context 'when user can invite' do
+ before do
+ stub_experiments(invite_members_in_comment: :invite_member_link)
+ project.add_maintainer(user)
+ end
+
+ it 'assigns the candidate experience and tracks the event' do
+ expect(experiment(:invite_members_in_comment)).to track(:view, property: project.root_ancestor.id.to_s)
+ .for(:invite_member_link)
+ .with_context(namespace: project.root_ancestor)
+ .on_next_instance
+
+ go
+ end
+ end
+
+ context 'when user can not invite' do
+ it 'does not track the event' do
+ expect(experiment(:invite_members_in_comment)).not_to track(:view)
+
+ go
+ end
+ end
+ end
+
context 'with view param' do
before do
go(view: 'parallel')
@@ -55,13 +82,19 @@ RSpec.describe Projects::MergeRequestsController do
merge_request.mark_as_unchecked!
end
- it 'checks mergeability asynchronously' do
- expect_next_instance_of(MergeRequests::MergeabilityCheckService) do |service|
- expect(service).not_to receive(:execute)
- expect(service).to receive(:async_execute)
+ context 'check_mergeability_async_in_widget feature flag is disabled' do
+ before do
+ stub_feature_flags(check_mergeability_async_in_widget: false)
end
- go
+ it 'checks mergeability asynchronously' do
+ expect_next_instance_of(MergeRequests::MergeabilityCheckService) do |service|
+ expect(service).not_to receive(:execute)
+ expect(service).to receive(:async_execute)
+ end
+
+ go
+ end
end
end
@@ -695,12 +728,6 @@ RSpec.describe Projects::MergeRequestsController do
expect(response).to have_gitlab_http_status(:unprocessable_entity)
expect(json_response).to eq({ 'errors' => 'Destroy confirmation not provided for merge request' })
end
-
- it 'delegates the update of the todos count cache to TodoService' do
- expect_any_instance_of(TodoService).to receive(:destroy_target).with(merge_request).once
-
- delete :destroy, params: { namespace_id: project.namespace, project_id: project, id: merge_request.iid, destroy_confirm: true }
- end
end
end