forked from AkkomaGang/akkoma
Tests: Add a helper method to reduce sleeping times in test.
This will 'time travel', i.e. change the inserted_at and update_at fields of the object in question. This is used to backdate things were we used sleeping before to ensure time differences.
This commit is contained in:
parent
ba19975838
commit
0ef0aed205
5 changed files with 18 additions and 11 deletions
|
@ -73,7 +73,8 @@ test "a returning chat will have an updated `update_at` field" do
|
||||||
other_user = insert(:user)
|
other_user = insert(:user)
|
||||||
|
|
||||||
{:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id)
|
{:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id)
|
||||||
:timer.sleep(1500)
|
{:ok, chat} = time_travel(chat, -2)
|
||||||
|
|
||||||
{:ok, chat_two} = Chat.bump_or_create(user.id, other_user.ap_id)
|
{:ok, chat_two} = Chat.bump_or_create(user.id, other_user.ap_id)
|
||||||
|
|
||||||
assert chat.id == chat_two.id
|
assert chat.id == chat_two.id
|
||||||
|
|
|
@ -96,12 +96,11 @@ test "it creates a participation for a conversation and a user" do
|
||||||
{:ok, %Participation{} = participation} =
|
{:ok, %Participation{} = participation} =
|
||||||
Participation.create_for_user_and_conversation(user, conversation)
|
Participation.create_for_user_and_conversation(user, conversation)
|
||||||
|
|
||||||
|
{:ok, participation} = time_travel(participation, -2)
|
||||||
|
|
||||||
assert participation.user_id == user.id
|
assert participation.user_id == user.id
|
||||||
assert participation.conversation_id == conversation.id
|
assert participation.conversation_id == conversation.id
|
||||||
|
|
||||||
# Needed because updated_at is accurate down to a second
|
|
||||||
:timer.sleep(1000)
|
|
||||||
|
|
||||||
# Creating again returns the same participation
|
# Creating again returns the same participation
|
||||||
{:ok, %Participation{} = participation_two} =
|
{:ok, %Participation{} = participation_two} =
|
||||||
Participation.create_for_user_and_conversation(user, conversation)
|
Participation.create_for_user_and_conversation(user, conversation)
|
||||||
|
|
|
@ -394,11 +394,11 @@ test "it return a list of chats the current user is participating in, in descend
|
||||||
tridi = insert(:user)
|
tridi = insert(:user)
|
||||||
|
|
||||||
{:ok, chat_1} = Chat.get_or_create(user.id, har.ap_id)
|
{:ok, chat_1} = Chat.get_or_create(user.id, har.ap_id)
|
||||||
:timer.sleep(1000)
|
{:ok, chat_1} = time_travel(chat_1, -3)
|
||||||
{:ok, _chat_2} = Chat.get_or_create(user.id, jafnhar.ap_id)
|
{:ok, chat_2} = Chat.get_or_create(user.id, jafnhar.ap_id)
|
||||||
:timer.sleep(1000)
|
{:ok, _chat_2} = time_travel(chat_2, -2)
|
||||||
{:ok, chat_3} = Chat.get_or_create(user.id, tridi.ap_id)
|
{:ok, chat_3} = Chat.get_or_create(user.id, tridi.ap_id)
|
||||||
:timer.sleep(1000)
|
{:ok, chat_3} = time_travel(chat_3, -1)
|
||||||
|
|
||||||
# bump the second one
|
# bump the second one
|
||||||
{:ok, chat_2} = Chat.bump_or_create(user.id, jafnhar.ap_id)
|
{:ok, chat_2} = Chat.bump_or_create(user.id, jafnhar.ap_id)
|
||||||
|
|
|
@ -37,8 +37,7 @@ test "it returns an error when the token has expired", %{conn: conn} do
|
||||||
|
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
{:ok, token} = PasswordResetToken.create_token(user)
|
{:ok, token} = PasswordResetToken.create_token(user)
|
||||||
|
{:ok, token} = time_travel(token, -2)
|
||||||
:timer.sleep(2000)
|
|
||||||
|
|
||||||
response =
|
response =
|
||||||
conn
|
conn
|
||||||
|
@ -55,7 +54,7 @@ test "it fails for an expired token", %{conn: conn} do
|
||||||
|
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
{:ok, token} = PasswordResetToken.create_token(user)
|
{:ok, token} = PasswordResetToken.create_token(user)
|
||||||
:timer.sleep(2000)
|
{:ok, token} = time_travel(token, -2)
|
||||||
{:ok, _access_token} = Token.create(insert(:oauth_app), user, %{})
|
{:ok, _access_token} = Token.create(insert(:oauth_app), user, %{})
|
||||||
|
|
||||||
params = %{
|
params = %{
|
||||||
|
|
|
@ -55,6 +55,14 @@ defmacro __using__(_opts) do
|
||||||
clear_config: 2
|
clear_config: 2
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def time_travel(entity, seconds) do
|
||||||
|
new_time = NaiveDateTime.add(entity.inserted_at, seconds)
|
||||||
|
|
||||||
|
entity
|
||||||
|
|> Ecto.Changeset.change(%{inserted_at: new_time, updated_at: new_time})
|
||||||
|
|> Pleroma.Repo.update()
|
||||||
|
end
|
||||||
|
|
||||||
def to_datetime(%NaiveDateTime{} = naive_datetime) do
|
def to_datetime(%NaiveDateTime{} = naive_datetime) do
|
||||||
naive_datetime
|
naive_datetime
|
||||||
|> DateTime.from_naive!("Etc/UTC")
|
|> DateTime.from_naive!("Etc/UTC")
|
||||||
|
|
Loading…
Reference in a new issue