From 09aeb31cb351e1fdffc44094674b450e3f3a2d9a Mon Sep 17 00:00:00 2001 From: Willem van den Ende Date: Sun, 14 Sep 2025 16:59:42 +0100 Subject: [PATCH] Move implementation to own file Prefactoring, from TDDAYMI to imperative shell. In the next step we need the implementation from the functional core in the imperative shell, to pass in the environment variable. --- lib/fun_core/basic_signup_whitelist.ex | 19 +++++++++++++++++++ test/fun_core/basic_signup_whitelist_test.exs | 19 +------------------ 2 files changed, 20 insertions(+), 18 deletions(-) create mode 100644 lib/fun_core/basic_signup_whitelist.ex diff --git a/lib/fun_core/basic_signup_whitelist.ex b/lib/fun_core/basic_signup_whitelist.ex new file mode 100644 index 0000000..9f0d603 --- /dev/null +++ b/lib/fun_core/basic_signup_whitelist.ex @@ -0,0 +1,19 @@ +defmodule FunCore.BasicSignupWhitelist do + def normalize(email) do + email |> String.trim() |> String.downcase() + end + + def addresses_as_list(addresses_str) do + addresses_str + |> String.split(",") + |> Enum.map(&normalize/1) + end + + def mail_whitelisted_fun(signups_allowed, email_received) do + case signups_allowed do + nil -> false + "*" -> true + list_str -> normalize(email_received) in addresses_as_list(list_str) + end + end +end diff --git a/test/fun_core/basic_signup_whitelist_test.exs b/test/fun_core/basic_signup_whitelist_test.exs index b63e0f1..ddb2f37 100644 --- a/test/fun_core/basic_signup_whitelist_test.exs +++ b/test/fun_core/basic_signup_whitelist_test.exs @@ -1,23 +1,6 @@ defmodule FunCore.BasicSignupWhitelistTest do use ExUnit.Case - - defp normalize(email) do - email |> String.trim() |> String.downcase() - end - - defp addresses_as_list(addresses_str) do - addresses_str - |> String.split(",") - |> Enum.map(&normalize/1) - end - - def mail_whitelisted_fun(signups_allowed, email_received) do - case signups_allowed do - nil -> false - "*" -> true - list_str -> normalize(email_received) in addresses_as_list(list_str) - end - end + import FunCore.BasicSignupWhitelist test "addresses_as_list" do assert addresses_as_list("joe@example.com, jane@example.com") == [