analytics/test/workers/clean_invitations_test.exs

55 lines
1.5 KiB
Elixir

defmodule Plausible.Workers.CleanInvitationsTest do
use Plausible.DataCase
alias Plausible.Workers.CleanInvitations
test "cleans invitations and transfers that are more than 48h old" do
now = NaiveDateTime.utc_now(:second)
owner = new_user()
site = new_site(owner: owner)
invite_guest(site, new_user(),
role: :viewer,
inviter: owner,
inserted_at: NaiveDateTime.shift(now, hour: -49),
team_invitation: [inserted_at: NaiveDateTime.shift(now, hour: -49)]
)
invite_transfer(site, new_user(),
inviter: owner,
inserted_at: NaiveDateTime.shift(now, hour: -49)
)
CleanInvitations.perform(nil)
refute Repo.exists?(Plausible.Teams.Invitation)
refute Repo.exists?(Plausible.Teams.GuestInvitation)
refute Repo.exists?(Plausible.Teams.SiteTransfer)
end
test "does not clean invitations and transfers that are less than 48h old" do
now = NaiveDateTime.utc_now(:second)
owner = new_user()
site = new_site(owner: owner)
invite_guest(site, new_user(),
role: :viewer,
inviter: owner,
inserted_at: NaiveDateTime.shift(now, hour: -47),
team_invitation: [inserted_at: NaiveDateTime.shift(now, hour: -47)]
)
invite_transfer(site, new_user(),
inviter: owner,
inserted_at: NaiveDateTime.shift(now, hour: -47)
)
CleanInvitations.perform(nil)
assert Repo.exists?(Plausible.Teams.Invitation)
assert Repo.exists?(Plausible.Teams.GuestInvitation)
assert Repo.exists?(Plausible.Teams.SiteTransfer)
end
end