| 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 |
|
|