From f0af777f6e2ecdfe25d91a18058151f9add9362b Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Tue, 13 Jan 2026 07:52:46 -0600 Subject: [PATCH] Add tests for UserSettingsHTML Added 2 tests covering the edit.html settings form template: - Settings form rendering with email, password, and passkeys sections - Warning message when user cannot register passkey This improves UserSettingsHTML coverage from 0% to 100%. --- .../controllers/user_settings_html_test.exs | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 test/towerops_web/controllers/user_settings_html_test.exs diff --git a/test/towerops_web/controllers/user_settings_html_test.exs b/test/towerops_web/controllers/user_settings_html_test.exs new file mode 100644 index 00000000..d3b95ac8 --- /dev/null +++ b/test/towerops_web/controllers/user_settings_html_test.exs @@ -0,0 +1,47 @@ +defmodule ToweropsWeb.UserSettingsHTMLTest do + use ToweropsWeb.ConnCase, async: true + + import Phoenix.Template, only: [render_to_string: 4] + + alias Towerops.Accounts.User + + describe "edit.html" do + test "renders settings form" do + email_changeset = User.email_changeset(%User{email: "user@example.com"}, %{}) + password_changeset = User.password_changeset(%User{}, %{}) + + html = + render_to_string(ToweropsWeb.UserSettingsHTML, "edit", "html", + flash: %{}, + current_scope: nil, + email_changeset: email_changeset, + password_changeset: password_changeset, + credentials: [], + can_register_passkey: true + ) + + assert html =~ "Account Settings" + assert html =~ "Change Email" + assert html =~ "Save Password" + assert html =~ "Passkeys" + assert html =~ "No passkeys registered" + end + + test "renders warning when cannot register passkey" do + email_changeset = User.email_changeset(%User{email: "user@example.com"}, %{}) + password_changeset = User.password_changeset(%User{}, %{}) + + html = + render_to_string(ToweropsWeb.UserSettingsHTML, "edit", "html", + flash: %{}, + current_scope: nil, + email_changeset: email_changeset, + password_changeset: password_changeset, + credentials: [], + can_register_passkey: false + ) + + assert html =~ "Please confirm your email address before registering a passkey" + end + end +end