1# frozen_string_literal: true
2
3require "test_helper"
4require "geo_code_repo"
5
6class GeoCodeRepoTest < Minitest::Test
7 def test_reverse
8 stub_request(
9 :get,
10 "https://geocoder.ca/?json=1&latt=40.739362&longt=-73.991043"
11 ).to_return(status: 200, body: {
12 "city" => "New York",
13 "prov" => "NY",
14 "latt" => "40.739362",
15 "longt" => "-73.991043",
16 "usa" => { "uscity" => "New York", "state" => "NY", "zip" => "10011" }
17 }.to_json)
18
19 geo = GeoCodeRepo.new(memcache: FakeMemcache.new)
20 .reverse(40.739362, -73.991043).sync
21
22 assert_equal "New York", geo.locality
23 assert_equal "NY", geo.region
24 end
25 em :test_reverse
26
27 def test_reverse_raises_on_missing_coords
28 stub_request(
29 :get,
30 "https://geocoder.ca/?json=1&latt=0.0&longt=0.0"
31 ).to_return(status: 200, body: { "error" => "no result" }.to_json)
32
33 assert_raises(RuntimeError) do
34 GeoCodeRepo.new(memcache: FakeMemcache.new)
35 .reverse(0.0, 0.0).sync
36 end
37 end
38 em :test_reverse_raises_on_missing_coords
39end