83 lines
2.5 KiB
Elixir
83 lines
2.5 KiB
Elixir
defmodule Mv.ConfigVereinfachtTest do
|
|
@moduledoc """
|
|
Tests for Mv.Config Vereinfacht-related helpers.
|
|
"""
|
|
use Mv.DataCase, async: false
|
|
|
|
describe "vereinfacht_env_configured?/0" do
|
|
test "returns false when no Vereinfacht ENV variables are set" do
|
|
clear_vereinfacht_env()
|
|
refute Mv.Config.vereinfacht_env_configured?()
|
|
end
|
|
|
|
test "returns true when VEREINFACHT_API_URL is set" do
|
|
set_vereinfacht_env("VEREINFACHT_API_URL", "https://api.example.com")
|
|
assert Mv.Config.vereinfacht_env_configured?()
|
|
after
|
|
clear_vereinfacht_env()
|
|
end
|
|
|
|
test "returns true when VEREINFACHT_CLUB_ID is set" do
|
|
set_vereinfacht_env("VEREINFACHT_CLUB_ID", "2")
|
|
assert Mv.Config.vereinfacht_env_configured?()
|
|
after
|
|
clear_vereinfacht_env()
|
|
end
|
|
end
|
|
|
|
describe "vereinfacht_configured?/0" do
|
|
test "returns false when no config is set" do
|
|
clear_vereinfacht_env()
|
|
# Settings may have nil for vereinfacht fields
|
|
refute Mv.Config.vereinfacht_configured?()
|
|
end
|
|
end
|
|
|
|
describe "vereinfacht_contact_view_url/1" do
|
|
test "returns nil when API URL is not configured" do
|
|
clear_vereinfacht_env()
|
|
assert Mv.Config.vereinfacht_contact_view_url("123") == nil
|
|
end
|
|
|
|
test "returns app contact view URL when API URL is set (derived app URL)" do
|
|
clear_vereinfacht_env()
|
|
clear_vereinfacht_app_url_from_settings()
|
|
set_vereinfacht_env("VEREINFACHT_API_URL", "https://api.example.com/api/v1")
|
|
|
|
assert Mv.Config.vereinfacht_contact_view_url("42") ==
|
|
"https://app.example.com/en/admin/finances/contacts/42"
|
|
after
|
|
clear_vereinfacht_env()
|
|
end
|
|
|
|
test "returns app contact view URL when VEREINFACHT_APP_URL is set" do
|
|
set_vereinfacht_env("VEREINFACHT_APP_URL", "https://app.verein.visuel.dev")
|
|
|
|
assert Mv.Config.vereinfacht_contact_view_url("abc") ==
|
|
"https://app.verein.visuel.dev/en/admin/finances/contacts/abc"
|
|
after
|
|
clear_vereinfacht_env()
|
|
end
|
|
end
|
|
|
|
defp set_vereinfacht_env(key, value) do
|
|
System.put_env(key, value)
|
|
end
|
|
|
|
defp clear_vereinfacht_env do
|
|
System.delete_env("VEREINFACHT_API_URL")
|
|
System.delete_env("VEREINFACHT_API_KEY")
|
|
System.delete_env("VEREINFACHT_CLUB_ID")
|
|
System.delete_env("VEREINFACHT_APP_URL")
|
|
end
|
|
|
|
defp clear_vereinfacht_app_url_from_settings do
|
|
case Mv.Membership.get_settings() do
|
|
{:ok, settings} ->
|
|
Mv.Membership.update_settings(settings, %{vereinfacht_app_url: nil})
|
|
|
|
_ ->
|
|
:ok
|
|
end
|
|
end
|
|
end
|