Phoenix 1.7
I am new to elixir and am working through the Elixir Phoenix Docs, while following this https://hexdocs.pm/phoenix/mix_phx_gen_auth.html. But I am getting an error when running the tests once the auth is generated. This is done with postgres, I get the same error when using sqlite.
Steps to reproduce:
- Create new phx project
- Install dependencies and create database
- mix test (5 or 5 test pass)
- mix phx.gen.auth Accounts User users
- mix deps.get
- mix ecto.setup
- mix test (30 tests fail of 128)
Error:
29) test update email form renders errors with invalid data (phx-change) (MyprojectWeb.UserSettingsLiveTest)
test/myproject_web/live/user_settings_live_test.exs:52
** (KeyError) key :name not found in: %{
__changed__: nil,
__given__: %{
__changed__: nil,
field: %Phoenix.HTML.FormField{
id: "user_email",
name: "user[email]",
errors: [],
field: :email,
form: %Phoenix.HTML.Form{
source: #Ecto.Changeset<
action: nil,
changes: %{},
errors: [email: {"did not change", []}],
data: #Myproject.Accounts.User<>,
valid?: false
>,
impl: Phoenix.HTML.FormData.Ecto.Changeset,
id: "user",
name: "user",
data: #Myproject.Accounts.User<
__meta__: #Ecto.Schema.Metadata<:loaded, "users">,
id: 58,
email: "user-576460752303416959@example.com",
confirmed_at: nil,
inserted_at: ~N[2024-05-05 18:24:05],
updated_at: ~N[2024-05-05 18:24:05],
...
>,
hidden: [id: 58],
params: %{},
errors: [],
options: [method: "put"],
index: nil,
action: nil
},
value: "user-576460752303416959@example.com"
},
label: "Email",
type: "email"
},
field: %Phoenix.HTML.FormField{
id: "user_email",
name: "user[email]",
errors: [],
field: :email,
form: %Phoenix.HTML.Form{
source: #Ecto.Changeset<
action: nil,
changes: %{},
errors: [email: {"did not change", []}],
data: #Myproject.Accounts.User<>,
valid?: false
>,
impl: Phoenix.HTML.FormData.Ecto.Changeset,
id: "user",
name: "user",
data: #Myproject.Accounts.User<
__meta__: #Ecto.Schema.Metadata<:loaded, "users">,
id: 58,
email: "user-576460752303416959@example.com",
confirmed_at: nil,
inserted_at: ~N[2024-05-05 18:24:05],
updated_at: ~N[2024-05-05 18:24:05],
...
>,
hidden: [id: 58],
params: %{},
errors: [],
options: [method: "put"],
index: nil,
action: nil
},
value: "user-576460752303416959@example.com"
},
inner_block: [],
label: "Email",
multiple: false,
prompt: nil,
rest: %{required: true},
type: "email"
}
stacktrace:
(myproject 0.1.0) lib/myproject_web/components/core_components.ex:350: anonymous fn/2 in MyprojectWeb.CoreComponents."input (overridable 1)"/1
(myproject 0.1.0) /home/itm/Code/myproject/lib/myproject_web/live/user_settings_live.ex:21: MyprojectWeb.UserSettingsLive.render/1
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
30) test update email form renders errors with invalid data (phx-submit) (MyprojectWeb.UserSettingsLiveTest)
test/myproject_web/live/user_settings_live_test.exs:68
** (KeyError) key :name not found in: %{
__changed__: nil,
__given__: %{
__changed__: nil,
field: %Phoenix.HTML.FormField{
id: "user_email",
name: "user[email]",
errors: [],
field: :email,
form: %Phoenix.HTML.Form{
source: #Ecto.Changeset<
action: nil,
changes: %{},
errors: [email: {"did not change", []}],
data: #Myproject.Accounts.User<>,
valid?: false
>,
impl: Phoenix.HTML.FormData.Ecto.Changeset,
id: "user",
name: "user",
data: #Myproject.Accounts.User<
__meta__: #Ecto.Schema.Metadata<:loaded, "users">,
id: 59,
email: "user-576460752303418878@example.com",
confirmed_at: nil,
inserted_at: ~N[2024-05-05 18:24:05],
updated_at: ~N[2024-05-05 18:24:05],
...
>,
hidden: [id: 59],
params: %{},
errors: [],
options: [method: "put"],
index: nil,
action: nil
},
value: "user-576460752303418878@example.com"
},
label: "Email",
type: "email"
},
field: %Phoenix.HTML.FormField{
id: "user_email",
name: "user[email]",
errors: [],
field: :email,
form: %Phoenix.HTML.Form{
source: #Ecto.Changeset<
action: nil,
changes: %{},
errors: [email: {"did not change", []}],
data: #Myproject.Accounts.User<>,
valid?: false
>,
impl: Phoenix.HTML.FormData.Ecto.Changeset,
id: "user",
name: "user",
data: #Myproject.Accounts.User<
__meta__: #Ecto.Schema.Metadata<:loaded, "users">,
id: 59,
email: "user-576460752303418878@example.com",
confirmed_at: nil,
inserted_at: ~N[2024-05-05 18:24:05],
updated_at: ~N[2024-05-05 18:24:05],
...
>,
hidden: [id: 59],
params: %{},
errors: [],
options: [method: "put"],
index: nil,
action: nil
},
value: "user-576460752303418878@example.com"
},
inner_block: [],
label: "Email",
multiple: false,
prompt: nil,
rest: %{required: true},
type: "email"
}
stacktrace:
(myproject 0.1.0) lib/myproject_web/components/core_components.ex:350: anonymous fn/2 in MyprojectWeb.CoreComponents."input (overridable 1)"/1
(myproject 0.1.0) /home/itm/Code/myproject/lib/myproject_web/live/user_settings_live.ex:21: MyprojectWeb.UserSettingsLive.render/1
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:396: Phoenix.LiveView.Diff.traverse/7
(phoenix_live_view 0.18.18) lib/phoenix_live_view/diff.ex:544: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
(elixir 1.16.2) lib/enum.ex:2528: Enum."-reduce/3-lists^foldl/2-0-"/3
.......................................................
Finished in 0.7 seconds (0.5s async, 0.2s sync)
128 tests, 30 failures
Randomized with seed 825518
Dependencies:
defp deps do
25 β [
24 β β {:bcrypt_elixir, "~> 3.0"},
23 β β {:phoenix, "~> 1.7.0-rc.1", override: true},
22 β β {:phoenix_ecto, "~> 4.4"},
21 β β {:ecto_sql, "~> 3.6"},
20 β β {:postgrex, ">= 0.0.0"},
19 β β {:phoenix_html, "~> 3.0"},
18 β β {:phoenix_live_reload, "~> 1.2", only: :dev},
17 β β {:phoenix_live_view, "~> 0.18.3"},
16 β β {:heroicons, "~> 0.5"},
15 β β {:floki, ">= 0.30.0", only: :test},
14 β β {:phoenix_live_dashboard, "~> 0.7.2"},
13 β β {:esbuild, "~> 0.5", runtime: Mix.env() == :dev},
12 β β {:tailwind, "~> 0.1.8", runtime: Mix.env() == :dev},
11 β β {:swoosh, "~> 1.3"},
10 β β {:finch, "~> 0.13"},
9 β β {:telemetry_metrics, "~> 0.6"},
8 β β {:telemetry_poller, "~> 1.0"},
7 β β {:gettext, "~> 0.20"},
6 β β {:jason, "~> 1.2"},
5 β β {:plug_cowboy, "~> 2.5"}
4 β ]
3 end
I am using NixOS, so I am guessing I am missing a dependency. Or maybe I may just not be following the documentation correctly? Any help would be appreciated.
Thanks!