From 069917c039ef6f9d78e84899f31637908c83fb21 Mon Sep 17 00:00:00 2001
From: Alex Reisner <alex@alexreisner.com>
Date: Wed, 25 May 2016 09:39:58 -0400
Subject: [PATCH] Don't overwrite existing config when setting token.

---
 lib/geocoder/lookups/esri.rb   | 2 +-
 test/unit/lookups/esri_test.rb | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/geocoder/lookups/esri.rb b/lib/geocoder/lookups/esri.rb
index 5cd3fa1c..c6562446 100644
--- a/lib/geocoder/lookups/esri.rb
+++ b/lib/geocoder/lookups/esri.rb
@@ -52,7 +52,7 @@ module Geocoder::Lookup
         configuration[:token].to_s
       elsif configuration.api_key # generate a new token if we have credentials
         token_instance = Geocoder::EsriToken.generate_token(*configuration.api_key)
-        Geocoder.configure(:esri => {:token => token_instance})
+        Geocoder.configure(:esri => Geocoder.config[:esri].merge({:token => token_instance}))
         token_instance.to_s
       end
     end
diff --git a/test/unit/lookups/esri_test.rb b/test/unit/lookups/esri_test.rb
index c9e171ee..bd6486fa 100644
--- a/test/unit/lookups/esri_test.rb
+++ b/test/unit/lookups/esri_test.rb
@@ -16,14 +16,14 @@ class EsriTest < GeocoderTestCase
       res
   end
 
-  def test_query_for_geocode_with_token_for_storage
+  def test_query_for_geocode_with_token_and_for_storage
     token = Geocoder::EsriToken.new('xxxxx', Time.now + 1.day)
     Geocoder.configure(esri: {token: token, for_storage: true})
     query = Geocoder::Query.new("Bluffton, SC")
     lookup = Geocoder::Lookup.get(:esri)
-    res = lookup.query_url(query)
-    assert_equal "http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/find?f=pjson&forStorage=true&outFields=%2A&text=Bluffton%2C+SC&token=xxxxx",
-      res
+    url = lookup.query_url(query)
+    assert_match /forStorage=true/, url
+    assert_match /token=xxxxx/, url
   end
 
   def test_query_for_reverse_geocode
-- 
GitLab