Skip to content
Snippets Groups Projects
mapbox_test.rb 1.35 KiB
Newer Older
  • Learn to ignore specific revisions
  • Andy Mention's avatar
    Andy Mention committed
    # encoding: utf-8
    require 'test_helper'
    
    class MapboxTest < GeocoderTestCase
    
      def setup
        Geocoder.configure(lookup: :mapbox)
        set_api_key!(:mapbox)
      end
    
      def test_url_contains_api_key
        Geocoder.configure(mapbox: {api_key: "abc123"})
        query = Geocoder::Query.new("Leadville, CO")
        assert_equal "https://api.mapbox.com/geocoding/v5/mapbox.places/Leadville%2C+CO.json?access_token=abc123", query.url
      end
    
      def test_result_components
        result = Geocoder.search("Madison Square Garden, New York, NY").first
    
        assert_equal [40.749688, -73.991566], result.coordinates
    
        assert_equal "Madison Square Garden", result.place_name
        assert_equal "4 Penn Plz", result.street
        assert_equal "New York", result.city
        assert_equal "New York", result.state
        assert_equal "10001", result.postal_code
        assert_equal "United States", result.country
        assert_equal "Garment District", result.neighborhood
    
    Andy Mention's avatar
    Andy Mention committed
        assert_equal "10001", result.postal_code
        assert_equal "Madison Square Garden, 4 Penn Plz, New York, New York, 10001, United States", result.address
      end
    
      def test_no_results
        assert_equal [], Geocoder.search("no results")
      end
    
      def test_raises_exception_with_invalid_api_key
        Geocoder.configure(always_raise: [Geocoder::InvalidApiKey])
        assert_raises Geocoder::InvalidApiKey do
    
          Geocoder.search("invalid api key")
    
    Andy Mention's avatar
    Andy Mention committed
        end
      end
    end