Skip to content

Commit

Permalink
test tag filter in regional maps
Browse files Browse the repository at this point in the history
  • Loading branch information
cesswairimu committed Jul 22, 2019
1 parent 2deb986 commit 42b39ec
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 6 deletions.
7 changes: 4 additions & 3 deletions app/controllers/maps_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,11 @@ def exports
def region
area = params[:id] || 'this area'
@title = "Maps in #{area}"
ids = Map.bbox(params[:minlat], params[:minlon], params[:maxlat], params[:maxlon], params[:tag]).collect(&:id)

ids = Map.bbox(params[:minlat], params[:minlon], params[:maxlat], params[:maxlon], params[:tag])
.collect(&:id)
cache_key = "#{params[:minlat]}-#{params[:maxlat]}-#{params[:minlon]}-#{params[:maxlon]}-#{params[:tag]}"
@maps =
Rails.cache.fetch("region-#{params[:minlat]}-#{params[:maxlat]}-#{params[:minlon]}-#{params[:maxlon]}-#{params[:tag]}", expires_in: 1.day) do
Rails.cache.fetch(cache_key, expires_in: 1.day) do
Map.where(password: '')
.where('id IN (?)', ids)
.paginate(page: params[:page], per_page: 50)
Expand Down
4 changes: 2 additions & 2 deletions app/models/map.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ def self.anonymous
Map.where(user_id: 0)
end

def self.bbox(minlat, minlon, maxlat, maxlon, tag=nil)
if tag == nil
def self.bbox(minlat, minlon, maxlat, maxlon, tag = nil)
if tag.nil?
Map.where(['lat > ? AND lat < ? AND lon > ? AND lon < ?',
minlat, maxlat, minlon, maxlon])
else
Expand Down
7 changes: 6 additions & 1 deletion test/fixtures/tags.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,9 @@ nice:
created_at: '2015-02-12 16:33:51'
map_id: 1
user_id: 1


featured:
name: featured
created_at: <%= Time.now %>
map_id: 2
user_id: 1
7 changes: 7 additions & 0 deletions test/functional/maps_controller_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,13 @@ def teardown
assert @maps.collect(&:name).include?('Saugus Landfill Incinerator')
end

test 'displays maps by region filter by tag if present' do
get :region, { minlat: 10, maxlat: 30, minlon: 60, maxlon: 80, tag: 'featured' }
@maps= assigns(:maps)
assert_response :success
assert @maps.collect(&:name).include?('Cubbon Park')
end

test 'should annotate maps' do
get :annotate, id: @map.slug
assert_response :success
Expand Down
10 changes: 10 additions & 0 deletions test/unit/map_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -124,4 +124,14 @@ class MapTest < ActiveSupport::TestCase
assert_includes(Map.anonymous, map)
assert map.anonymous?
end

test 'filter bbox with tag if present' do
maps = Map.bbox(10,60,30,80,'featured')
assert maps.collect(&:name).include?('Cubbon Park')
end

test 'bbox without tag returns results' do
maps = Map.bbox(40,-80,50,-60)
assert maps.collect(&:name).include?('Saugus Landfill Incinerator')
end
end

0 comments on commit 42b39ec

Please sign in to comment.