Hi !
I’m new in Elixir/Phoenix world,
I started a project and now, I would like add a new attribute to a schema, but this attribute must be an Enum. I saw Ecto.Enum for that, So I added an Ecto.Enum, I did a migration and when I run my server, It’s ok, I have my datas with the new attribute. But when I run tests, there are errors :’(
I put my github’s project link because I don’t see to put my code here:
I think error or errors are into these files:
users_test.exs
users_controller_test.exs
user.ex
users.ex
Thanks for your help
Ps: my errors during tests:
mix test
Compiling 1 file (.ex)
warning: function embed_as/1 required by behaviour Ecto.Type is not implemented (in module Cym.Users.User.Type)
lib/chooseYourMis/users/user.ex:7: Cym.Users.User.Type (module)
warning: function equal?/2 required by behaviour Ecto.Type is not implemented (in module Cym.Users.User.Type)
lib/chooseYourMis/users/user.ex:7: Cym.Users.User.Type (module)
…
-
test users get_user!/1 returns the user with given id (Cym.UsersTest)
test/chooseYourMis/users_test.exs:27
** (MatchError) no match of right hand side value: {:error, #Ecto.Changeset<action: :insert, changes: %{firstName: “some firstName”, lastName: “some lastName”, mail: “some mail”}, errors:
[type: {“is invalid”, [type: Cym.Users.User.Type, validation: :cast]}], data: #Cym.Users.User<>, valid?: false>}
code: user = user_fixture()
stacktrace:
test/chooseYourMis/users_test.exs:14: Cym.UsersTest.user_fixture/1
test/chooseYourMis/users_test.exs:28: (test) -
test users create_user/1 with valid data creates a user (Cym.UsersTest)
test/chooseYourMis/users_test.exs:32
match (=) failed
code: assert {:ok, %User{} = user} = Users.create_user(@valid_attrs)
right: {:error,
#Ecto.Changeset<
action: :insert,
changes: %{firstName: “some firstName”, lastName: “some lastName”, mail: “some mail”},
errors: [type: {“is invalid”, [type: Cym.Users.User.Type, validation: :cast]}],
data: #Cym.Users.User<>,
valid?: false
>}
stacktrace:
test/chooseYourMis/users_test.exs:33: (test) -
test users update_user/2 with valid data updates the user (Cym.UsersTest)
test/chooseYourMis/users_test.exs:44
** (MatchError) no match of right hand side value: {:error, #Ecto.Changeset<action: :insert, changes: %{firstName: “some firstName”, lastName: “some lastName”, mail: “some mail”}, errors: [type: {“is invalid”, [type: Cym.Users.User.Type, validation: :cast]}], data: #Cym.Users.User<>, valid?: false>}
code: user = user_fixture()
stacktrace:
test/chooseYourMis/users_test.exs:14: Cym.UsersTest.user_fixture/1
test/chooseYourMis/users_test.exs:45: (test) -
test users list_users/0 returns all users (Cym.UsersTest)
test/chooseYourMis/users_test.exs:22
** (MatchError) no match of right hand side value: {:error, #Ecto.Changeset<action: :insert, changes: %{firstName: “some firstName”, lastName: “some lastName”, mail: “some mail”}, errors: [type: {“is invalid”, [type: Cym.Users.User.Type, validation: :cast]}], data: #Cym.Users.User<>, valid?: false>}
code: user = user_fixture()
stacktrace:
test/chooseYourMis/users_test.exs:14: Cym.UsersTest.user_fixture/1
test/chooseYourMis/users_test.exs:23: (test)
.
-
test users delete_user/1 deletes the user (Cym.UsersTest)
test/chooseYourMis/users_test.exs:59
** (MatchError) no match of right hand side value: {:error, #Ecto.Changeset<action: :insert, changes: %{firstName: “some firstName”, lastName: “some lastName”, mail: “some mail”}, errors: [type: {“is invalid”, [type: Cym.Users.User.Type, validation: :cast]}], data: #Cym.Users.User<>, valid?: false>}
code: user = user_fixture()
stacktrace:
test/chooseYourMis/users_test.exs:14: Cym.UsersTest.user_fixture/1
test/chooseYourMis/users_test.exs:60: (test) -
test users change_user/1 returns a user changeset (Cym.UsersTest)
test/chooseYourMis/users_test.exs:65
** (MatchError) no match of right hand side value: {:error, #Ecto.Changeset<action: :insert, changes: %{firstName: “some firstName”, lastName: “some lastName”, mail: “some mail”}, errors: [type: {“is invalid”, [type: Cym.Users.User.Type, validation: :cast]}], data: #Cym.Users.User<>, valid?: false>}
code: user = user_fixture()
stacktrace:
test/chooseYourMis/users_test.exs:14: Cym.UsersTest.user_fixture/1
test/chooseYourMis/users_test.exs:66: (test) -
test users update_user/2 with invalid data returns error changeset (Cym.UsersTest)
test/chooseYourMis/users_test.exs:53
** (MatchError) no match of right hand side value: {:error, #Ecto.Changeset<action: :insert, changes: %{firstName: “some firstName”, lastName: “some lastName”, mail: “some mail”}, errors: [type: {“is invalid”, [type: Cym.Users.User.Type, validation: :cast]}], data: #Cym.Users.User<>, valid?: false>}
code: user = user_fixture()
stacktrace:
test/chooseYourMis/users_test.exs:14: Cym.UsersTest.user_fixture/1
test/chooseYourMis/users_test.exs:54: (test)
…
-
test create user renders user when data is valid (CymWeb.UserControllerTest)
test/chooseYourMis_web/controllers/user_controller_test.exs:38
** (RuntimeError) expected response with status 201, got: 422, with body:
{“errors”:{“type”:[“is invalid”]}}
code: assert %{“id” => id} = json_response(conn, 201)[“data”]
stacktrace:
(phoenix) lib/phoenix/test/conn_test.ex:373: Phoenix.ConnTest.response/2
(phoenix) lib/phoenix/test/conn_test.ex:419: Phoenix.ConnTest.json_response/2
test/chooseYourMis_web/controllers/user_controller_test.exs:40: (test) -
test update user renders errors when data is invalid (CymWeb.UserControllerTest)
test/chooseYourMis_web/controllers/user_controller_test.exs:77
** (MatchError) no match of right hand side value: {:error, #Ecto.Changeset<action: :insert, changes: %{firstName: “some firstName”, lastName: “some lastName”, mail: “some mail”}, errors: [type: {“is invalid”, [type: Cym.Users.User.Type, validation: :cast]}], data: #Cym.Users.User<>, valid?: false>}
stacktrace:
test/chooseYourMis_web/controllers/user_controller_test.exs:22: CymWeb.UserControllerTest.fixture/1
test/chooseYourMis_web/controllers/user_controller_test.exs:97: CymWeb.UserControllerTest.create_user/1
test/chooseYourMis_web/controllers/user_controller_test.exs:1: CymWeb.UserControllerTest.ex_unit/2 -
test delete user deletes chosen user (CymWeb.UserControllerTest)
test/chooseYourMis_web/controllers/user_controller_test.exs:86
** (MatchError) no match of right hand side value: {:error, #Ecto.Changeset<action: :insert, changes: %{firstName: “some firstName”, lastName: “some lastName”, mail: “some mail”}, errors: [type: {“is invalid”, [type: Cym.Users.User.Type, validation: :cast]}], data: #Cym.Users.User<>, valid?: false>}
stacktrace:
test/chooseYourMis_web/controllers/user_controller_test.exs:22: CymWeb.UserControllerTest.fixture/1
test/chooseYourMis_web/controllers/user_controller_test.exs:97: CymWeb.UserControllerTest.create_user/1
test/chooseYourMis_web/controllers/user_controller_test.exs:1: CymWeb.UserControllerTest.ex_unit/2 -
test update user renders user when data is valid (CymWeb.UserControllerTest)
test/chooseYourMis_web/controllers/user_controller_test.exs:62
** (MatchError) no match of right hand side value: {:error, #Ecto.Changeset<action: :insert, changes: %{firstName: “some firstName”, lastName: “some lastName”, mail: “some mail”}, errors: [type: {“is invalid”, [type: Cym.Users.User.Type, validation: :cast]}], data: #Cym.Users.User<>, valid?: false>}
stacktrace:
test/chooseYourMis_web/controllers/user_controller_test.exs:22: CymWeb.UserControllerTest.fixture/1
test/chooseYourMis_web/controllers/user_controller_test.exs:97: CymWeb.UserControllerTest.create_user/1
test/chooseYourMis_web/controllers/user_controller_test.exs:1: CymWeb.UserControllerTest.ex_unit/2
…
Finished in 0.2 seconds
30 tests, 11 failures
Randomized with seed 429207