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/models/merge_request_spec.rb')
-rw-r--r--spec/models/merge_request_spec.rb95
1 files changed, 13 insertions, 82 deletions
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index 19026a4772d..f27f3b749b1 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -31,6 +31,7 @@ RSpec.describe MergeRequest, factory_default: :keep do
it { is_expected.to have_many(:draft_notes) }
it { is_expected.to have_many(:reviews).inverse_of(:merge_request) }
it { is_expected.to have_one(:cleanup_schedule).inverse_of(:merge_request) }
+ it { is_expected.to have_many(:created_environments).class_name('Environment').inverse_of(:merge_request) }
context 'for forks' do
let!(:project) { create(:project) }
@@ -144,22 +145,6 @@ RSpec.describe MergeRequest, factory_default: :keep do
end
end
- describe '.attention' do
- let_it_be(:merge_request5) { create(:merge_request, :unique_branches, assignees: [user2]) }
- let_it_be(:merge_request6) { create(:merge_request, :unique_branches, assignees: [user2]) }
-
- before do
- assignee = merge_request6.find_assignee(user2)
- assignee.update!(state: :reviewed)
- merge_request2.find_reviewer(user2).update!(state: :attention_requested)
- merge_request5.find_assignee(user2).update!(state: :attention_requested)
- end
-
- it 'returns MRs that have any attention requests' do
- expect(described_class.attention(user2)).to eq([merge_request2, merge_request5])
- end
- end
-
describe '.drafts' do
it 'returns MRs where draft == true' do
expect(described_class.drafts).to eq([merge_request4])
@@ -884,6 +869,16 @@ RSpec.describe MergeRequest, factory_default: :keep do
expect { subject.cache_merge_request_closes_issues!(subject.author) }
.not_to change(subject.merge_requests_closing_issues, :count)
end
+
+ it 'caches issues from another project with issues enabled' do
+ project = create(:project, :public, issues_enabled: true)
+ issue = create(:issue, project: project)
+ commit = double('commit1', safe_message: "Fixes #{issue.to_reference(full: true)}")
+ allow(subject).to receive(:commits).and_return([commit])
+
+ expect { subject.cache_merge_request_closes_issues!(subject.author) }
+ .to change(subject.merge_requests_closing_issues, :count).by(1)
+ end
end
end
@@ -3232,73 +3227,9 @@ RSpec.describe MergeRequest, factory_default: :keep do
end
end
- describe '#detailed_merge_status' do
- subject(:detailed_merge_status) { merge_request.detailed_merge_status }
-
- context 'when merge status is cannot_be_merged_rechecking' do
- let(:merge_request) { create(:merge_request, merge_status: :cannot_be_merged_rechecking) }
-
- it 'returns :checking' do
- expect(detailed_merge_status).to eq(:checking)
- end
- end
-
- context 'when merge status is preparing' do
- let(:merge_request) { create(:merge_request, merge_status: :preparing) }
-
- it 'returns :checking' do
- expect(detailed_merge_status).to eq(:checking)
- end
- end
-
- context 'when merge status is checking' do
- let(:merge_request) { create(:merge_request, merge_status: :checking) }
-
- it 'returns :checking' do
- expect(detailed_merge_status).to eq(:checking)
- end
- end
-
- context 'when merge status is unchecked' do
- let(:merge_request) { create(:merge_request, merge_status: :unchecked) }
-
- it 'returns :unchecked' do
- expect(detailed_merge_status).to eq(:unchecked)
- end
- end
-
- context 'when merge checks are a success' do
- let(:merge_request) { create(:merge_request) }
-
- it 'returns :mergeable' do
- expect(detailed_merge_status).to eq(:mergeable)
- end
- end
-
- context 'when merge status have a failure' do
- let(:merge_request) { create(:merge_request) }
-
- before do
- merge_request.close!
- end
-
- it 'returns the failure reason' do
- expect(detailed_merge_status).to eq(:not_open)
- end
- end
- end
-
describe '#mergeable_state?' do
it_behaves_like 'for mergeable_state'
- context 'when improved_mergeability_checks is off' do
- before do
- stub_feature_flags(improved_mergeability_checks: false)
- end
-
- it_behaves_like 'for mergeable_state'
- end
-
context 'when merge state caching is off' do
before do
stub_feature_flags(mergeability_caching: false)
@@ -3743,9 +3674,9 @@ RSpec.describe MergeRequest, factory_default: :keep do
let(:expected_diff_refs) do
Gitlab::Diff::DiffRefs.new(
- base_sha: subject.merge_request_diff.base_commit_sha,
+ base_sha: subject.merge_request_diff.base_commit_sha,
start_sha: subject.merge_request_diff.start_commit_sha,
- head_sha: subject.merge_request_diff.head_commit_sha
+ head_sha: subject.merge_request_diff.head_commit_sha
)
end