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%.
47 lines
1.5 KiB
Elixir
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
|