From f333ea1ed01f0f3d3b1974cf534cf1c6399b5a70 Mon Sep 17 00:00:00 2001 From: Willem van den Ende Date: Sun, 14 Sep 2025 16:06:50 +0100 Subject: [PATCH] when not defined, not allowed --- lib/basic_signup_whitelist.ex | 12 ++++++++++-- test/fun_core/basic_signup_whitelist_test.exs | 11 +++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 test/fun_core/basic_signup_whitelist_test.exs diff --git a/lib/basic_signup_whitelist.ex b/lib/basic_signup_whitelist.ex index 2f2763f..6804ae9 100644 --- a/lib/basic_signup_whitelist.ex +++ b/lib/basic_signup_whitelist.ex @@ -1,10 +1,18 @@ defmodule BasicSignupWhitelist do @moduledoc """ - Documentation for `BasicSignupWhitelist`. + Checks if an email address is allowed based on the SIGNUP_ALLOWED_EMAILS env variable. """ @doc """ - false + Checks if an email address is allowed based on the SIGNUP_ALLOWED_EMAILS env variable. + + Rules: + - Returns true if ALLOWED_EMAILS == "*" (all emails allowed) + - Returns true if email matches any entry in the comma-separated list + - Returns false if: + * Environment variable doesn't exist + * Environment variable is empty string + * Email not found in whitelist ## Examples diff --git a/test/fun_core/basic_signup_whitelist_test.exs b/test/fun_core/basic_signup_whitelist_test.exs new file mode 100644 index 0000000..3d283b2 --- /dev/null +++ b/test/fun_core/basic_signup_whitelist_test.exs @@ -0,0 +1,11 @@ +defmodule FunCore.BasicSignupWhitelistTest do + use ExUnit.Case + + def mail_whitelisted_fun(_signups_allowed, _email_received) do + false + end + + test "When not set, not whitelisted" do + refute(mail_whitelisted_fun(nil, "joe@example.com")) + end +end