fix flaky test_user_relationship_test.exs:81

The problem was double. On the one hand, the function didn't actually return what was in the DB.
On the other hand the test was flaky because it used NaiveDateTime.utc_now() so test could fail or pass depending on a difference of microseconds.

Both are fixed now.
This commit is contained in:
ilja 2022-10-23 13:31:01 +02:00
parent 16a31872fe
commit 3562eaeedc
2 changed files with 11 additions and 4 deletions

View file

@ -67,8 +67,9 @@ defmodule Pleroma.UserRelationship do
target_id: target.id target_id: target.id
}) })
|> Repo.insert( |> Repo.insert(
on_conflict: {:replace_all_except, [:id]}, on_conflict: {:replace_all_except, [:id, :inserted_at]},
conflict_target: [:source_id, :relationship_type, :target_id] conflict_target: [:source_id, :relationship_type, :target_id],
returning: true
) )
end end

View file

@ -5,8 +5,9 @@
defmodule Pleroma.UserRelationshipTest do defmodule Pleroma.UserRelationshipTest do
alias Pleroma.UserRelationship alias Pleroma.UserRelationship
use Pleroma.DataCase, async: true use Pleroma.DataCase, async: false
import Mock
import Pleroma.Factory import Pleroma.Factory
describe "*_exists?/2" do describe "*_exists?/2" do
@ -79,7 +80,12 @@ defmodule Pleroma.UserRelationshipTest do
end end
test "if record already exists, returns it", %{users: [user1, user2]} do test "if record already exists, returns it", %{users: [user1, user2]} do
user_block = UserRelationship.create_block(user1, user2) user_block =
with_mock NaiveDateTime, [:passthrough], utc_now: fn -> ~N[2017-03-17 17:09:58] end do
{:ok, %{inserted_at: ~N[2017-03-17 17:09:58]}} =
UserRelationship.create_block(user1, user2)
end
assert user_block == UserRelationship.create_block(user1, user2) assert user_block == UserRelationship.create_block(user1, user2)
end end
end end