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