defmodule BasicSignupWhitelistTest do use ExUnit.Case doctest BasicSignupWhitelist defp allow_signups_for(whitelist) do System.put_env("SIGNUP_ALLOWED_EMAILS", whitelist) end setup do # Save original env var original_env = System.get_env("SIGNUP_ALLOWED_EMAILS") on_exit(fn -> # Restore original env var after each test case original_env do nil -> System.delete_env("SIGNUP_ALLOWED_EMAILS") value -> System.put_env("SIGNUP_ALLOWED_EMAILS", value) end end) :ok end test "When not set, not whitelisted" do System.delete_env("SIGNUP_ALLOWED_EMAILS") refute BasicSignupWhitelist.mail_whitelisted("joe@example.com") end test "When set to star, whitelisted" do allow_signups_for("*") assert BasicSignupWhitelist.mail_whitelisted("joe@example.com") end end