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