refactor: centralize SIGNUP_ALLOWLIST_EMAILS constant definition

Define environment variable name as a module attribute in BasicSignupAllowlist
and expose it via signup_allowlist_emails/0 function to eliminate duplication
across lib and test files.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Your Name 2025-09-16 09:40:11 +00:00
parent c6e3a490d2
commit a89ed0c80c
2 changed files with 11 additions and 4 deletions

View File

@ -1,10 +1,17 @@
defmodule BasicSignupAllowlist do
import FunCore.BasicSignupAllowlist
@signup_allowlist_emails "SIGNUP_ALLOWLIST_EMAILS"
@moduledoc """
Checks if an email address is allowed based on the SIGNUP_ALLOWLIST_EMAILS env variable.
"""
@doc """
Returns the name of the environment variable used for the signup allowlist.
"""
def signup_allowlist_emails, do: @signup_allowlist_emails
@doc """
Checks if an email address is allowed based on the SIGNUP_ALLOWLIST_EMAILS env variable.
@ -27,7 +34,7 @@ defmodule BasicSignupAllowlist do
"""
def mail_allowlisted(email) do
env_value = System.get_env("SIGNUP_ALLOWLIST_EMAILS")
env_value = System.get_env(@signup_allowlist_emails)
mail_allowlisted_fun(env_value, email)
end
end

View File

@ -3,21 +3,21 @@ defmodule BasicSignupAllowlistTest do
doctest BasicSignupAllowlist
defp allow_signups_for(allowlist) do
System.put_env("SIGNUP_ALLOWLIST_EMAILS", allowlist)
System.put_env(BasicSignupAllowlist.signup_allowlist_emails(), allowlist)
end
describe "setup in describe block" do
setup do
on_exit(fn ->
# resetting values did not work, so 'just' set it to the effect without this module configured.
System.put_env("SIGNUP_ALLOWLIST_EMAILS", "*")
System.put_env(BasicSignupAllowlist.signup_allowlist_emails(), "*")
end)
:ok
end
test "When not set, not allowlisted" do
System.delete_env("SIGNUP_ALLOWLIST_EMAILS")
System.delete_env(BasicSignupAllowlist.signup_allowlist_emails())
refute BasicSignupAllowlist.mail_allowlisted("joe@example.com")
end