mobilizon/test/mobilizon_web/resolvers/address_resolver_test.exs
Thomas Citharel c599a47d58
Introduce Mimirsbrunn geocoder and improve addresses & maps
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-11-12 14:10:18 +01:00

63 lines
1.6 KiB
Elixir

defmodule MobilizonWeb.Resolvers.AddressResolverTest do
use MobilizonWeb.ConnCase
alias MobilizonWeb.AbsintheHelpers
import Mobilizon.Factory
describe "Address Resolver" do
test "search/3 search for addresses", %{conn: conn} do
address = insert(:address, description: "10 rue Jangot, Lyon")
query = """
{
searchAddress(query: "10 Rue Jangot") {
street,
description,
geom
}
}
"""
res =
conn
|> get("/api", AbsintheHelpers.query_skeleton(query, "address"))
json_response(res, 200)["data"]["searchAddress"]
|> Enum.each(fn addr -> assert Map.get(addr, "description") == address.description end)
end
test "geocode/3 reverse geocodes coordinates", %{conn: conn} do
query = """
{
reverseGeocode(longitude: -23.01, latitude: 30.01) {
description,
geom
}
}
"""
res =
conn
|> get("/api", AbsintheHelpers.query_skeleton(query, "address"))
assert json_response(res, 200)["data"]["reverseGeocode"] |> hd |> Map.get("description") ==
"Anywhere"
query = """
{
reverseGeocode(longitude: 45.75, latitude: 4.85) {
description,
geom
}
}
"""
res =
conn
|> get("/api", AbsintheHelpers.query_skeleton(query, "address"))
assert json_response(res, 200)["data"]["reverseGeocode"] |> hd |> Map.get("description") ==
"10 rue Jangot, Lyon"
end
end
end