@@ -81,6 +81,39 @@ def test_google_places_details_query_url_always_uses_https
8181 assert_match ( %r(^https://) , url )
8282 end
8383
84+ def test_google_places_details_query_url_omits_fields_by_default
85+ url = lookup . query_url ( Geocoder ::Query . new ( "some-place-id" ) )
86+ assert_no_match ( /fields=/ , url )
87+ end
88+
89+ def test_google_places_details_query_url_contains_specific_fields_when_given
90+ fields = %w[ formatted_address place_id ]
91+ url = lookup . query_url ( Geocoder ::Query . new ( "some-place-id" , fields : fields ) )
92+ assert_match ( /fields=#{ fields . join ( '%2C' ) } / , url )
93+ end
94+
95+ def test_google_places_details_query_url_contains_specific_fields_when_configured
96+ fields = %w[ business_status geometry photos ]
97+ Geocoder . configure ( google_places_details : { fields : fields } )
98+ url = lookup . query_url ( Geocoder ::Query . new ( "some-place-id" ) )
99+ assert_match ( /fields=#{ fields . join ( '%2C' ) } / , url )
100+ Geocoder . configure ( google_places_details : { } )
101+ end
102+
103+ def test_google_places_details_query_url_omits_fields_when_nil_given
104+ Geocoder . configure ( google_places_details : { fields : %w[ business_status geometry photos ] } )
105+ url = lookup . query_url ( Geocoder ::Query . new ( "some-place-id" , fields : nil ) )
106+ assert_no_match ( /fields=/ , url )
107+ Geocoder . configure ( google_places_details : { } )
108+ end
109+
110+ def test_google_places_details_query_url_omits_fields_when_nil_configured
111+ Geocoder . configure ( google_places_details : { fields : nil } )
112+ url = lookup . query_url ( Geocoder ::Query . new ( "some-place-id" ) )
113+ assert_no_match ( /fields=/ , url )
114+ Geocoder . configure ( google_places_details : { } )
115+ end
116+
84117 def test_google_places_details_result_with_no_reviews_shows_empty_reviews
85118 assert_equal no_reviews_result . reviews , [ ]
86119 end
0 commit comments