Hi everyone,
I don’t understand why this test is failing instead of going to the changeset and give an error and pass the test. Because that error was expected in that test.
Expected result:
To append an error to the changeset and pass the tests for username to long and password to short
Test parts that fail because the password and users don’t match
test "does not accept long usernames" do
attrs = Map.put(@valid_attrs, :username, String.duplicate("a", 30))
{:error, changeset} = Accounts.register_user(attrs)
assert %{username: ["should be at most 20 character(s)"]} = errors_on(changeset)
assert Accounts.list_users() == []
end
test "requires password to be at least 6 chars long" do
attrs = Map.put(@valid_attrs, :password, "12345")
{:error, changeset} = Accounts.register_user(attrs)
assert %{password: ["should be at least 6 character(s)"]} = errors_on(changeset)
assert Accounts.list_users() == []
end
Error trace:
rumbl mix test test/rumbl/accounts_test.exs
.
1) test register_user/1 does not accept long usernames (Rumbl.AccountsTest)
test/rumbl/accounts_test.exs:36
** (MatchError) no match of right hand side value: {:ok, %Rumbl.Accounts.User{__meta__:
#Ecto.Schema.Metadata<:loaded, "users">, id: 18, inserted_at: ~N[2020-01-19 15:34:04],
name: "User", password: "secret", password_hash: "$pbkdf2-sha512$160000$iahAZDIoM/oP/PA9AlAIXQ$mxd9aqd.QhF9MPPjhSOyu.QiMFIAdZkLUUXoRTbwpyoqB0V5af6FpfE/USCoAxMvC.HW1i1m.0B7o1JYHDAyDQ", updated_at: ~N[2020-01-19 15:34:04], username: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}
code: {:error, changeset} = Accounts.register_user(attrs)
stacktrace:
test/rumbl/accounts_test.exs:38: (test)
2) test register_user/1 requires password to be at least 6 chars long (Rumbl.AccountsTest)
test/rumbl/accounts_test.exs:44
** (MatchError) no match of right hand side value: {:ok, %Rumbl.Accounts.User{__meta__:
#Ecto.Schema.Metadata<:loaded, "users">, id: 19, inserted_at: ~N[2020-01-19 15:34:05],
name: "User", password: "12345",
password_hash:
"$pbkdf2-sha512$160000$g5239LoShgVmsdO7qvYzVQ$cJnOY1lKgDjsAYT7Svi2P58qZly0khxmhEwOMfYk6mELoOtxlKUe4YMC0AE8vf1.m7J0M8EdlQOsCly0hyGy7g",
updated_at: ~N[2020-01-19 15:34:05], username: "eva"}}
code: {:error, changeset} = Accounts.register_user(attrs)
stacktrace:
test/rumbl/accounts_test.exs:46: (test)
..
Finished in 5.5 seconds
5 tests, 2 failures
Randomized with seed 829346
Also the full test can be seen here
Thanks in advance