diff options
Diffstat (limited to 'spec/presenters/merge_request_presenter_spec.rb')
-rw-r--r-- | spec/presenters/merge_request_presenter_spec.rb | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/spec/presenters/merge_request_presenter_spec.rb b/spec/presenters/merge_request_presenter_spec.rb index dbf5af095cb..798bee70e42 100644 --- a/spec/presenters/merge_request_presenter_spec.rb +++ b/spec/presenters/merge_request_presenter_spec.rb @@ -4,9 +4,45 @@ require 'spec_helper' RSpec.describe MergeRequestPresenter do let_it_be(:project) { create(:project, :repository) } - let_it_be(:resource) { create(:merge_request, source_project: project) } + let(:resource) { create(:merge_request, source_project: project) } + let_it_be(:user) { create(:user) } + describe '#mergeable_discussions_state' do + subject { described_class.new(resource).mergeable_discussions_state } + + let(:discussions_state) { double } + + before do + allow(resource).to receive(:mergeable_discussions_state?).and_return(discussions_state) + end + + context 'when change_response_code_merge_status is enabled' do + it 'returns the mergeable_discussions_state' do + is_expected.to eq(discussions_state) + end + end + + context 'when change_response_code_merge_status is disabled' do + before do + stub_feature_flags(change_response_code_merge_status: false) + end + + context 'when it is not mergeable' do + it 'returns false' do + resource.close! + is_expected.to eq(false) + end + end + + context 'when it is mergeable' do + it 'returns the mergeable_discussions_state' do + is_expected.to eq(discussions_state) + end + end + end + end + describe '#ci_status' do subject { described_class.new(resource).ci_status } @@ -308,7 +344,7 @@ RSpec.describe MergeRequestPresenter do end before do - allow(resource).to receive(:work_in_progress?).and_return(true) + allow(resource).to receive(:draft?).and_return(true) end context 'when merge request enabled and has permission' do |