mobilizon/test/service/address/address_test.exs

61 lines
1.7 KiB
Elixir
Raw Normal View History

defmodule Mobilizon.Service.AddressTest do
@moduledoc """
Test representing addresses
"""
use Mobilizon.DataCase
alias Mobilizon.Addresses.Address
alias Mobilizon.Service.Address, as: AddressRenderer
import Mobilizon.Factory
describe "render an address" do
test "basic" do
%Address{} = address = insert(:address)
assert AddressRenderer.render_address(address) ==
"#{address.description}, #{address.postal_code}, #{address.locality}, #{address.country}"
end
test "a house" do
assert AddressRenderer.render_address(%Address{
description: "somewhere",
type: "house",
postal_code: "35000",
locality: "Rennes"
}) ==
"somewhere, 35000, Rennes"
end
test "a city" do
assert AddressRenderer.render_address(%Address{
description: "Rennes",
type: "city",
postal_code: "35000",
locality: "Rennes"
}) ==
"Rennes (35000)"
end
test "a region" do
assert AddressRenderer.render_address(%Address{
description: "Ille et Vilaine",
type: "administrative",
postal_code: "",
locality: ""
}) ==
"Ille et Vilaine"
end
test "only with description" do
assert AddressRenderer.render_address(%Address{description: "somewhere"}) == "somewhere"
end
test "with no data" do
assert AddressRenderer.render_address(%Address{}) == nil
assert_raise ArgumentError, "Invalid address", fn ->
AddressRenderer.render_address!(%Address{})
end
end
end
end