Commit bb9db75f authored by Douwe Maan's avatar Douwe Maan

Merge branch 'fix-any-projects-array' into 'master'

Allow usage of any_projects? with an Array

Closes #3646

See merge request !13559
parents fe09c25d b401b302
Pipeline #10886371 failed with stages
in 77 minutes and 20 seconds
...@@ -234,6 +234,8 @@ module ProjectsHelper ...@@ -234,6 +234,8 @@ module ProjectsHelper
# If no limit is applied we'll just issue a COUNT since the result set could # If no limit is applied we'll just issue a COUNT since the result set could
# be too large to load into memory. # be too large to load into memory.
def any_projects?(projects) def any_projects?(projects)
return projects.any? if projects.is_a?(Array)
if projects.limit_value if projects.limit_value
projects.to_a.any? projects.to_a.any?
else else
......
...@@ -432,9 +432,7 @@ describe ProjectsHelper do ...@@ -432,9 +432,7 @@ describe ProjectsHelper do
end end
describe '#any_projects?' do describe '#any_projects?' do
before do let!(:project) { create(:project) }
create(:project)
end
it 'returns true when projects will be returned' do it 'returns true when projects will be returned' do
expect(helper.any_projects?(Project.all)).to eq(true) expect(helper.any_projects?(Project.all)).to eq(true)
...@@ -444,6 +442,14 @@ describe ProjectsHelper do ...@@ -444,6 +442,14 @@ describe ProjectsHelper do
expect(helper.any_projects?(Project.none)).to eq(false) expect(helper.any_projects?(Project.none)).to eq(false)
end end
it 'returns true when using a non-empty Array' do
expect(helper.any_projects?([project])).to eq(true)
end
it 'returns false when using an empty Array' do
expect(helper.any_projects?([])).to eq(false)
end
it 'only executes a single query when a LIMIT is applied' do it 'only executes a single query when a LIMIT is applied' do
relation = Project.limit(1) relation = Project.limit(1)
recorder = ActiveRecord::QueryRecorder.new do recorder = ActiveRecord::QueryRecorder.new do
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment