mobilizon/test/service/clean_unconfirmed_users_tes...

57 lines
1.8 KiB
Elixir
Raw Permalink Normal View History

defmodule Mobilizon.Service.CleanUnconfirmedUsersTest do
use Mobilizon.DataCase
import Mobilizon.Factory
alias Mobilizon.Service.CleanUnconfirmedUsers
alias Mobilizon.Users
alias Mobilizon.Users.User
describe "clean unconfirmed users" do
test "with default values" do
{:ok, old, _} = DateTime.from_iso8601("2020-11-20T17:35:23+01:00")
%User{id: user_id} = insert(:user, confirmation_sent_at: old, confirmed_at: nil)
%User{id: user_2_id} = insert(:user)
refute is_nil(Users.get_user(user_id))
refute is_nil(Users.get_user(user_2_id))
assert {:ok, [found_user]} = CleanUnconfirmedUsers.clean()
assert found_user.id == user_id
assert is_nil(Users.get_user(user_id))
refute is_nil(Users.get_user(user_2_id))
end
test "as dry-run" do
{:ok, old, _} = DateTime.from_iso8601("2020-11-20T17:35:23+01:00")
%User{id: user_id} = insert(:user, confirmation_sent_at: old, confirmed_at: nil)
%User{id: user_2_id} = insert(:user)
refute is_nil(Users.get_user(user_id))
refute is_nil(Users.get_user(user_2_id))
assert {:ok, [found_user]} = CleanUnconfirmedUsers.clean(dry_run: true)
assert found_user.id == user_id
refute is_nil(Users.get_user(user_id))
refute is_nil(Users.get_user(user_2_id))
end
test "with custom grace period" do
date = DateTime.utc_now() |> DateTime.add(24 * -3600)
%User{id: user_id} = insert(:user, confirmation_sent_at: date, confirmed_at: nil)
%User{id: user_2_id} = insert(:user)
refute is_nil(Users.get_user(user_id))
refute is_nil(Users.get_user(user_2_id))
assert {:ok, [found_user]} = CleanUnconfirmedUsers.clean(grace_period: 12)
assert found_user.id == user_id
assert is_nil(Users.get_user(user_id))
refute is_nil(Users.get_user(user_2_id))
end
end
end