Skip to content

Commit

Permalink
Merge pull request #64 from epochtalk/user-created-at
Browse files Browse the repository at this point in the history
User created at
  • Loading branch information
akinsey authored Sep 19, 2023
2 parents 992efb2 + 9b8e7d2 commit bef8225
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
8 changes: 8 additions & 0 deletions lib/epochtalk_server/models/user.ex
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,14 @@ defmodule EpochtalkServer.Models.User do
"""
@spec registration_changeset(user :: t(), attrs :: map() | nil) :: Ecto.Changeset.t()
def registration_changeset(user, attrs) do
now = NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second)

# set timestamps
user =
user
|> Map.put(:created_at, now)
|> Map.put(:updated_at, now)

user
|> cast(attrs, [
:id,
Expand Down
7 changes: 7 additions & 0 deletions test/epochtalk_server_web/controllers/user_test.exs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
defmodule Test.EpochtalkServerWeb.Controllers.User do
use Test.Support.ConnCase, async: true
# for mocking,
use Mimic
import Ecto.Changeset
alias EpochtalkServer.Models.User
alias EpochtalkServer.Models.Ban
Expand Down Expand Up @@ -82,13 +84,18 @@ defmodule Test.EpochtalkServerWeb.Controllers.User do
password: "password"
}

mocked_date = ~N[2000-01-01 00:00:00.000000]
expect(NaiveDateTime, :utc_now, fn -> mocked_date end)

response =
conn
|> post(Routes.user_path(conn, :register, register_attrs))
|> json_response(200)

{:ok, registered_user} = User.by_username(register_attrs.username)
assert response["id"] == registered_user.id
assert registered_user.created_at == mocked_date |> NaiveDateTime.truncate(:second)
assert registered_user.updated_at == mocked_date |> NaiveDateTime.truncate(:second)
end

test "when email is already taken, errors", %{
Expand Down

0 comments on commit bef8225

Please sign in to comment.