towerops/test/towerops_web/controllers/user_settings_html_test.exs
Graham McIntire f0af777f6e
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%.
2026-01-13 07:52:46 -06:00

47 lines
1.5 KiB
Elixir

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