2017-08-11 73 views
1

Geocoder DOCS解釋如何用街道地址僞造Geocoder查找,但它似乎不適用於IP地址。Rails Rspec和Geocoder IP查找

這是我的規格/支持/ geocoder.rb

Geocoder.configure(:lookup => :test) 

Geocoder::Lookup::Test.add_stub(
    "1.1.1.1", [ 
    { 
    'latitude'  => 10, 
    'longitude' => 10, 
    'address'  => 'Test Address', 
    'state'  => 'Test State', 
    'state_code' => 'TS', 
    'country'  => 'Test Country', 
    'country_code' => 'TC' 
    } 
] 
) 

Geocoder::Lookup::Test.set_default_stub(
    [ 
    { 
     'latitude'  => 10, 
     'longitude' => 10, 
     'address'  => 'Test Address', 
     'state'  => 'Test State', 
     'state_code' => 'TS', 
     'country'  => 'Test Country', 
     'country_code' => 'TC' 
    } 
    ] 
) 

這是我的服務:

if params[:ip] 
    lat = Geocoder.search(params[:ip])[0].latitude 
    lng = Geocoder.search(params[:ip])[0].longitude 
    venues = venues.near([lat, lng], APP_CONFIG['geo_location_radius'], order: 'average_rating DESC') 
end 

這是我的服務規範:

context "find featured venues by ip" do 
    let(:params) do 
    { 
     date:  Date.today, 
     featured: true, 
     ip:  '1.1.1.1', 
    } 
    end 

    it do 
    aggregate_failures do 
     expect(raw_venues.map { |v| v.id }.sort).to eq [venue1.id] 
    end 
    end 

end 

如果我進入在it區塊中撬動我嘗試Geocoder.search('1.1.1.1')我得到一個「真實」的物體響應,並在A中有一個位置ustralia而不是我的存根,而我正確地得到我的存根,如果我輸入類似Geocoder.search('Florence, Italy') ..

如何設置存根響應與IP查找工作?

回答

0

解決方案很簡單:

Geocoder.configure(ip_lookup: :test)