add tests for email verification flag lifecycle
All checks were successful
deploy / deploy (push) Successful in 34s

Tests that sending a test email sets the verified flag, saving config
clears it, and disconnecting clears it. Also adds unit tests for
email_verified?/mark/clear in the Mailer module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-02-21 22:43:33 +00:00
parent 3dca9ad9d0
commit 069fbc7df2
2 changed files with 74 additions and 1 deletions

View File

@@ -4,7 +4,7 @@ defmodule BerrypodWeb.Admin.EmailSettingsTest do
import Phoenix.LiveViewTest
import Berrypod.AccountsFixtures
alias Berrypod.Settings
alias Berrypod.{Mailer, Settings}
setup do
# Ensure mailer starts as test adapter and restore on exit
@@ -142,6 +142,50 @@ defmodule BerrypodWeb.Admin.EmailSettingsTest do
refute html =~ "Send test email"
end
test "sending test email sets verified flag", %{conn: conn} do
Settings.put_setting("email_adapter", "postmark")
Settings.put_secret("email_postmark_api_key", "pm_test_abc")
{:ok, view, _html} = live(conn, ~p"/admin/settings/email")
html = render_click(view, "send_test")
assert html =~ "Test email sent"
assert Mailer.email_verified?()
end
test "saving config clears verified flag", %{conn: conn} do
Mailer.mark_email_verified()
assert Mailer.email_verified?()
{:ok, view, _html} = live(conn, ~p"/admin/settings/email")
view
|> form("form[phx-change=\"change_adapter\"]", %{email: %{adapter: "postmark"}})
|> render_change()
view
|> form("form[phx-submit=\"save\"]", %{
email: %{adapter: "postmark", api_key: "pm_new_key"}
})
|> render_submit()
refute Mailer.email_verified?()
end
test "disconnecting clears verified flag", %{conn: conn} do
Settings.put_setting("email_adapter", "postmark")
Settings.put_secret("email_postmark_api_key", "pm_test_abc")
Mailer.mark_email_verified()
assert Mailer.email_verified?()
{:ok, view, _html} = live(conn, ~p"/admin/settings/email")
render_click(view, "disconnect")
refute Mailer.email_verified?()
end
end
describe "unauthenticated" do