summaryrefslogtreecommitdiff
path: root/spec/controllers/projects/merge_requests/content_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/projects/merge_requests/content_controller_spec.rb')
-rw-r--r--spec/controllers/projects/merge_requests/content_controller_spec.rb19
1 files changed, 17 insertions, 2 deletions
diff --git a/spec/controllers/projects/merge_requests/content_controller_spec.rb b/spec/controllers/projects/merge_requests/content_controller_spec.rb
index 67d3ef6f4f0..0eaa528a330 100644
--- a/spec/controllers/projects/merge_requests/content_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests/content_controller_spec.rb
@@ -11,13 +11,13 @@ RSpec.describe Projects::MergeRequests::ContentController do
sign_in(user)
end
- def do_request(action = :cached_widget)
+ def do_request(action = :cached_widget, params = {})
get action, params: {
namespace_id: project.namespace.to_param,
project_id: project,
id: merge_request.iid,
format: :json
- }
+ }.merge(params)
end
context 'user has access to the project' do
@@ -42,6 +42,10 @@ RSpec.describe Projects::MergeRequests::ContentController do
end
describe 'GET widget' do
+ before do
+ merge_request.mark_as_unchecked!
+ end
+
it 'checks whether the MR can be merged' do
controller.instance_variable_set(:@merge_request, merge_request)
@@ -53,6 +57,17 @@ RSpec.describe Projects::MergeRequests::ContentController do
expect(response.headers['Poll-Interval']).to eq('10000')
end
+ context 'when async_mergeability_check param is passed' do
+ 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).and_call_original
+ end
+
+ do_request(:widget, { async_mergeability_check: true })
+ end
+ end
+
context 'merged merge request' do
let(:merge_request) do
create(:merged_merge_request, :with_test_reports, target_project: project, source_project: project)