Compare commits

...

2 Commits

Author SHA1 Message Date
5a7f651547 Integrate whitelist in imperative shell 2025-09-14 20:15:14 +01:00
1c23e93d43 WIP set the environment variable
next: implement
2025-09-14 17:10:50 +01:00
2 changed files with 31 additions and 3 deletions

View File

@ -1,4 +1,6 @@
defmodule BasicSignupWhitelist do
import FunCore.BasicSignupWhitelist
@moduledoc """
Checks if an email address is allowed based on the SIGNUP_ALLOWED_EMAILS env variable.
"""
@ -20,7 +22,8 @@ defmodule BasicSignupWhitelist do
false
"""
def mail_whitelisted(_email) do
false
def mail_whitelisted(email) do
env_value = System.get_env("SIGNUP_ALLOWED_EMAILS")
mail_whitelisted_fun(env_value, email)
end
end

View File

@ -2,7 +2,32 @@ 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
assert BasicSignupWhitelist.mail_whitelisted("joe@example.com") == false
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