Add basic metadata to opengraph preview

Also refactor datetime & address utils

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2021-06-22 13:15:21 +02:00
parent eee2d63309
commit 8caf1e302b
9 changed files with 376 additions and 53 deletions

View File

@@ -0,0 +1,58 @@
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_raise ArgumentError, "Invalid address", fn ->
AddressRenderer.render_address(%Address{})
end
end
end
end