]> git.openstreetmap.org Git - rails.git/commitdiff
Merge pull request #3933 from AntonKhorev/api-changesets-limit
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 26 Jul 2023 15:45:00 +0000 (16:45 +0100)
committerGitHub <noreply@github.com>
Wed, 26 Jul 2023 15:45:00 +0000 (16:45 +0100)
Add limit parameter to api changesets query

1  2 
test/controllers/api/changesets_controller_test.rb

index cb82b5664b5a7638ddadb29cb250480e40e78b38,fc24bb8b6fce5ca02812e27930394a0b0bc0c325..40b8bc9f280e72ba4f0110d136dd56e6eb99adea
@@@ -272,7 -272,7 +272,7 @@@ module Ap
        js = ActiveSupport::JSON.decode(@response.body)
        assert_not_nil js
        assert_equal(-5, js["changeset"]["min_lat"])
 -      assert_equal  5, js["changeset"]["min_lon"]
 +      assert_equal 5, js["changeset"]["min_lon"]
        assert_equal 15, js["changeset"]["max_lat"]
        assert_equal 12, js["changeset"]["max_lon"]
      end
        assert_response :bad_request, "should be a bad request since changesets is empty"
      end
  
+     ##
+     # test the query functionality of changesets with the limit parameter
+     def test_query_limit
+       user = create(:user)
+       changeset1 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 1, 1, 0, 0, 0), :closed_at => Time.utc(2008, 1, 2, 0, 0, 0))
+       changeset2 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 2, 1, 0, 0, 0), :closed_at => Time.utc(2008, 2, 2, 0, 0, 0))
+       changeset3 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 3, 1, 0, 0, 0), :closed_at => Time.utc(2008, 3, 2, 0, 0, 0))
+       changeset4 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 4, 1, 0, 0, 0), :closed_at => Time.utc(2008, 4, 2, 0, 0, 0))
+       changeset5 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 5, 1, 0, 0, 0), :closed_at => Time.utc(2008, 5, 2, 0, 0, 0))
+       get changesets_path
+       assert_response :success
+       assert_changesets [changeset5, changeset4, changeset3, changeset2, changeset1]
+       get changesets_path(:limit => "3")
+       assert_response :success
+       assert_changesets [changeset5, changeset4, changeset3]
+       get changesets_path(:limit => "0")
+       assert_response :bad_request
+       get changesets_path(:limit => "101")
+       assert_response :bad_request
+     end
      ##
      # check that errors are returned if garbage is inserted
      # into query strings