From 50ac4e6d6faf8b4ab17cdcd1ad31e2c7b642f09a Mon Sep 17 00:00:00 2001 From: Oswaldo Ferreira Date: Sat, 6 May 2017 16:17:41 -0300 Subject: EE backport --- .../projects/merge_requests_controller.rb | 11 +++++------ app/presenters/merge_request_presenter.rb | 4 +--- app/serializers/merge_request_entity.rb | 7 +++---- spec/presenters/merge_request_presenter_spec.rb | 11 ----------- spec/serializers/merge_request_entity_spec.rb | 21 +++++++++++++-------- 5 files changed, 22 insertions(+), 32 deletions(-) diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index b41dbb6c1e6..44c7eb86855 100755 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -14,7 +14,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController ] before_action :validates_merge_request, only: [:show, :diffs, :commits, :pipelines] before_action :define_show_vars, only: [:show, :diffs, :commits, :conflicts, :conflict_for_path, :builds, :pipelines] - before_action :define_widget_vars, only: [:merge, :cancel_merge_when_pipeline_succeeds, :merge_check] before_action :define_commit_vars, only: [:diffs] before_action :ensure_ref_fetched, only: [:show, :diffs, :commits, :builds, :conflicts, :conflict_for_path, :pipelines] before_action :close_merge_request_without_source_project, only: [:show, :diffs, :commits, :builds, :pipelines] @@ -335,7 +334,11 @@ class Projects::MergeRequestsController < Projects::ApplicationController status = merge! - render json: { status: status } + if @merge_request.merge_error + render json: { status: status, merge_error: @merge_request.merge_error } + else + render json: { status: status } + end end def branch_from @@ -495,10 +498,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController @notes = prepare_notes_for_rendering(@discussions.flat_map(&:notes)) end - def define_widget_vars - @pipeline = @merge_request.head_pipeline - end - def define_commit_vars @commit = @merge_request.diff_head_commit @base_commit = @merge_request.diff_base_commit || @merge_request.likely_diff_base_commit diff --git a/app/presenters/merge_request_presenter.rb b/app/presenters/merge_request_presenter.rb index 102727a8b22..255f63db5c2 100644 --- a/app/presenters/merge_request_presenter.rb +++ b/app/presenters/merge_request_presenter.rb @@ -36,9 +36,7 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated end def remove_wip_path - if can?(current_user, :update_merge_request, merge_request.project) && - project.merge_requests_enabled? - + if can?(current_user, :update_merge_request, merge_request.project) remove_wip_namespace_project_merge_request_path(project.namespace, project, merge_request) end end diff --git a/app/serializers/merge_request_entity.rb b/app/serializers/merge_request_entity.rb index 721e044d31d..a2542c54f7a 100644 --- a/app/serializers/merge_request_entity.rb +++ b/app/serializers/merge_request_entity.rb @@ -24,9 +24,8 @@ class MergeRequestEntity < IssuableEntity expose :merge_user, using: UserEntity # Diff sha's - expose :diff_head_sha - expose :diff_head_commit_short_id do |merge_request| - merge_request.diff_head_commit.try(:short_id) + expose :diff_head_sha do |merge_request| + merge_request.diff_head_sha if merge_request.diff_head_commit end expose :merge_commit_sha @@ -38,7 +37,7 @@ class MergeRequestEntity < IssuableEntity expose :source_branch_exists?, as: :source_branch_exists expose :mergeable_discussions_state?, as: :mergeable_discussions_state expose :branch_missing?, as: :branch_missing - expose :has_no_commits?, as: :has_no_commits + expose :commits_count expose :cannot_be_merged?, as: :has_conflicts expose :can_be_merged?, as: :can_be_merged diff --git a/spec/presenters/merge_request_presenter_spec.rb b/spec/presenters/merge_request_presenter_spec.rb index 2c571ffa2bd..e599ddaf943 100644 --- a/spec/presenters/merge_request_presenter_spec.rb +++ b/spec/presenters/merge_request_presenter_spec.rb @@ -302,17 +302,6 @@ describe MergeRequestPresenter do context 'when has no permission' do it 'returns nil' do - allow(project).to receive(:merge_requests_enabled?) { true } - - is_expected.to be_nil - end - end - - context 'when merge requests disabled' do - it 'returns nil' do - allow(project).to receive(:merge_requests_enabled?) { false } - project.team << [user, :master] - is_expected.to be_nil end end diff --git a/spec/serializers/merge_request_entity_spec.rb b/spec/serializers/merge_request_entity_spec.rb index 5b1f6e0b135..bb6e83ae4bd 100644 --- a/spec/serializers/merge_request_entity_spec.rb +++ b/spec/serializers/merge_request_entity_spec.rb @@ -46,7 +46,8 @@ describe MergeRequestEntity do :conflict_resolution_path, :cancel_merge_when_pipeline_succeeds_path, :create_issue_to_resolve_discussions_path, - :source_branch_path, :target_branch_commits_path) + :source_branch_path, :target_branch_commits_path, + :commits_count) end it 'has email_patches_path' do @@ -64,20 +65,24 @@ describe MergeRequestEntity do .to eq(resource.merge_commit_message(include_description: true)) end - describe 'diff_head_commit_short_id' do - context 'when no diff head commit' do - let(:project) { create :empty_project } + describe 'diff_head_sha' do + before do + allow(resource).to receive(:diff_head_sha) { 'sha' } + end + context 'when no diff head commit' do it 'returns nil' do - expect(subject[:diff_head_commit_short_id]).to be_nil + allow(resource).to receive(:diff_head_commit) { nil } + + expect(subject[:diff_head_sha]).to be_nil end end context 'when diff head commit present' do - let(:project) { create :project } - it 'returns diff head commit short id' do - expect(subject[:diff_head_commit_short_id]).to eq(resource.diff_head_commit.short_id) + allow(resource).to receive(:diff_head_commit) { double } + + expect(subject[:diff_head_sha]).to eq('sha') end end end -- cgit v1.2.1