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/finders/merge_requests_finder_spec.rb')
-rw-r--r--spec/finders/merge_requests_finder_spec.rb87
1 files changed, 87 insertions, 0 deletions
diff --git a/spec/finders/merge_requests_finder_spec.rb b/spec/finders/merge_requests_finder_spec.rb
index 4f86323c7c6..68958e37001 100644
--- a/spec/finders/merge_requests_finder_spec.rb
+++ b/spec/finders/merge_requests_finder_spec.rb
@@ -486,6 +486,83 @@ RSpec.describe MergeRequestsFinder do
expect(merge_requests).to contain_exactly(old_merge_request, new_merge_request)
end
end
+
+ context 'filtering by the merge request deployments' do
+ let(:gstg) { create(:environment, project: project4, name: 'gstg') }
+ let(:gprd) { create(:environment, project: project4, name: 'gprd') }
+
+ let(:mr1) do
+ create(
+ :merge_request,
+ :simple,
+ :merged,
+ author: user,
+ source_project: project4,
+ target_project: project4
+ )
+ end
+
+ let(:mr2) do
+ create(
+ :merge_request,
+ :simple,
+ :merged,
+ author: user,
+ source_project: project4,
+ target_project: project4
+ )
+ end
+
+ let(:deploy1) do
+ create(
+ :deployment,
+ :success,
+ deployable: nil,
+ environment: gstg,
+ project: project4,
+ sha: mr1.diff_head_sha,
+ finished_at: Time.utc(2020, 10, 1, 12, 0)
+ )
+ end
+
+ let(:deploy2) do
+ create(
+ :deployment,
+ :success,
+ deployable: nil,
+ environment: gprd,
+ project: project4,
+ sha: mr2.diff_head_sha,
+ finished_at: Time.utc(2020, 10, 2, 15, 0)
+ )
+ end
+
+ before do
+ deploy1.link_merge_requests(MergeRequest.where(id: mr1.id))
+ deploy2.link_merge_requests(MergeRequest.where(id: mr2.id))
+ end
+
+ it 'filters merge requests deployed to a given environment' do
+ mrs = described_class.new(user, environment: 'gstg').execute
+
+ expect(mrs).to eq([mr1])
+ end
+
+ it 'filters merge requests deployed before a given date' do
+ mrs =
+ described_class.new(user, deployed_before: '2020-10-02').execute
+
+ expect(mrs).to eq([mr1])
+ end
+
+ it 'filters merge requests deployed after a given date' do
+ mrs = described_class
+ .new(user, deployed_after: '2020-10-01 12:00')
+ .execute
+
+ expect(mrs).to eq([mr2])
+ end
+ end
end
describe '#row_count', :request_store do
@@ -500,6 +577,16 @@ RSpec.describe MergeRequestsFinder do
expect(finder.row_count).to eq(1)
end
+
+ it 'returns -1 if the query times out' do
+ finder = described_class.new(user)
+
+ expect_next_instance_of(described_class) do |subfinder|
+ expect(subfinder).to receive(:execute).and_raise(ActiveRecord::QueryCanceled)
+ end
+
+ expect(finder.row_count).to eq(-1)
+ end
end
context 'external authorization' do