diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-18 19:00:14 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-18 19:00:14 +0000 |
commit | 05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2 (patch) | |
tree | 11d0f2a6ec31c7793c184106cedc2ded3d9a2cc5 /spec/models/merge_request_spec.rb | |
parent | ec73467c23693d0db63a797d10194da9e72a74af (diff) | |
download | gitlab-ce-05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2.tar.gz |
Add latest changes from gitlab-org/gitlab@15-8-stable-eev15.8.0-rc42
Diffstat (limited to 'spec/models/merge_request_spec.rb')
-rw-r--r-- | spec/models/merge_request_spec.rb | 72 |
1 files changed, 71 insertions, 1 deletions
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index 05586cbfc64..a059d5cae9b 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe MergeRequest, factory_default: :keep do +RSpec.describe MergeRequest, factory_default: :keep, feature_category: :code_review_workflow do include RepoHelpers include ProjectForksHelper include ReactiveCachingHelpers @@ -165,6 +165,25 @@ RSpec.describe MergeRequest, factory_default: :keep do expect(described_class.drafts).to eq([merge_request4]) end end + + describe '.without_hidden', feature_category: :insider_threat do + let_it_be(:banned_user) { create(:user, :banned) } + let_it_be(:hidden_merge_request) { create(:merge_request, :unique_branches, author: banned_user) } + + it 'only returns public issuables' do + expect(described_class.without_hidden).not_to include(hidden_merge_request) + end + + context 'when feature flag is disabled' do + before do + stub_feature_flags(hide_merge_requests_from_banned_users: false) + end + + it 'returns public and hidden issuables' do + expect(described_class.without_hidden).to include(hidden_merge_request) + end + end + end end describe '#squash?' do @@ -4546,6 +4565,34 @@ RSpec.describe MergeRequest, factory_default: :keep do end end + describe 'transition to merged' do + context 'when reset_merge_error_on_transition feature flag is on' do + before do + stub_feature_flags(reset_merge_error_on_transition: true) + end + + it 'resets the merge error' do + subject.update!(merge_error: 'temp') + + expect { subject.mark_as_merged }.to change { subject.merge_error.present? } + .from(true) + .to(false) + end + end + + context 'when reset_merge_error_on_transition feature flag is off' do + before do + stub_feature_flags(reset_merge_error_on_transition: false) + end + + it 'does not reset the merge error' do + subject.update!(merge_error: 'temp') + + expect { subject.mark_as_merged }.not_to change { subject.merge_error.present? } + end + end + end + describe 'transition to cannot_be_merged' do let(:notification_service) { double(:notification_service) } let(:todo_service) { double(:todo_service) } @@ -5456,4 +5503,27 @@ RSpec.describe MergeRequest, factory_default: :keep do it { is_expected.to be_empty } end + + describe '#hidden?', feature_category: :insider_threat do + let_it_be(:author) { create(:user) } + let(:merge_request) { build_stubbed(:merge_request, author: author) } + + subject { merge_request.hidden? } + + it { is_expected.to eq(false) } + + context 'when the author is banned' do + let_it_be(:author) { create(:user, :banned) } + + it { is_expected.to eq(true) } + + context 'when the feature flag is disabled' do + before do + stub_feature_flags(hide_merge_requests_from_banned_users: false) + end + + it { is_expected.to eq(false) } + end + end + end end |