mobilizon/priv/repo/e2e.seed.exs

58 lines
1.7 KiB
Elixir

defmodule EndToEndSeed do
alias Mobilizon.Users
def delete_user(email) do
with {:ok, user} <- Users.get_user_by_email(email) do
Users.delete_user(user, reserve_email: false)
end
end
end
alias Mobilizon.Users
alias Mobilizon.Users.User
alias Mobilizon.Actors
alias Mobilizon.Actors.Actor
if Application.get_env(:mobilizon, :env) != :e2e do
exit(:shutdown)
end
# An user that has just been registered
test_user_unconfirmed = %{email: "unconfirmed@email.com", password: "some password"}
# An user that has registered and has confirmed their account, but no attached identity
test_user_confirmed = %{email: "confirmed@email.com", password: "some password"}
# An user that has registered and has confirmed their account, with a profile
test_user = %{email: "user@email.com", password: "some password"}
test_actor = %{preferred_username: "test_user", name: "I'm a test user", domain: nil}
EndToEndSeed.delete_user(test_user_unconfirmed.email)
EndToEndSeed.delete_user(test_user_confirmed.email)
EndToEndSeed.delete_user(test_user.email)
{:ok, %User{} = _user_unconfirmed} = Users.register(test_user_unconfirmed)
{:ok, %User{} = user_confirmed} = Users.register(test_user_confirmed)
Users.update_user(user_confirmed, %{
"confirmed_at" => Timex.shift(user_confirmed.confirmation_sent_at, hours: -3),
"confirmation_sent_at" => nil,
"confirmation_token" => nil
})
{:ok, %User{} = user} = Users.register(test_user)
Users.update_user(user, %{
"confirmed_at" => Timex.shift(user.confirmation_sent_at, hours: -3),
"confirmation_sent_at" => nil,
"confirmation_token" => nil
})
{:ok, %Actor{}} =
Actors.new_person(%{
user_id: user.id,
preferred_username: test_actor.preferred_username,
name: test_actor.name
})