towerops/test/towerops_web/controllers/user_settings_html_test.exs
Graham McIntire 0ea2addc91
Fix Bandit configuration and user settings HTML test
Bandit 1.10.1 does not support read_timeout/write_timeout in http_1_options
or stream_idle_timeout in http_2_options. These invalid options caused the
application to crash on startup with 'Unsupported key(s) in http_1_options'.

Moved read_timeout to thousand_island_options where it belongs, and removed
the unsupported write_timeout and stream_idle_timeout options.

Also fixed UserSettingsHTMLTest to include the missing mobile_sessions assign
that is required by the edit.html.heex template.
2026-01-15 16:06:01 -06:00

49 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,
mobile_sessions: []
)
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,
mobile_sessions: []
)
assert html =~ "Please confirm your email address before registering a passkey"
end
end
end