mirror of
https://github.com/plausible/analytics.git
synced 2024-12-25 02:24:55 +03:00
35 lines
1.1 KiB
Elixir
35 lines
1.1 KiB
Elixir
|
defmodule Plausible.Workers.CleanUserSessionsTest do
|
||
|
use Plausible.DataCase
|
||
|
|
||
|
alias Plausible.Auth.UserSession
|
||
|
alias Plausible.Workers.CleanUserSessions
|
||
|
|
||
|
test "cleans invitation that is more than timeout_at + grace_period days old" do
|
||
|
grace_cutoff =
|
||
|
NaiveDateTime.utc_now(:second)
|
||
|
|> NaiveDateTime.shift(Duration.negate(UserSession.timeout_duration()))
|
||
|
|> NaiveDateTime.shift(CleanUserSessions.grace_period_duration())
|
||
|
|
||
|
ten_days_after = NaiveDateTime.shift(grace_cutoff, day: 10)
|
||
|
one_day_after = NaiveDateTime.shift(grace_cutoff, day: 1)
|
||
|
one_day_before = NaiveDateTime.shift(grace_cutoff, day: -1)
|
||
|
session_to_clean = insert_session(one_day_before)
|
||
|
session_to_leave1 = insert_session(one_day_after)
|
||
|
session_to_leave2 = insert_session(ten_days_after)
|
||
|
|
||
|
CleanUserSessions.perform(nil)
|
||
|
|
||
|
refute Repo.reload(session_to_clean)
|
||
|
assert Repo.reload(session_to_leave1)
|
||
|
assert Repo.reload(session_to_leave2)
|
||
|
end
|
||
|
|
||
|
defp insert_session(now) do
|
||
|
user = insert(:user)
|
||
|
|
||
|
user
|
||
|
|> UserSession.new_session("Unknown", now)
|
||
|
|> Repo.insert!()
|
||
|
end
|
||
|
end
|