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:
parent
16a31872fe
commit
3562eaeedc
|
@ -67,8 +67,9 @@ def create(relationship_type, %User{} = source, %User{} = target) 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
|
||||||
|
|
||||||
|
|
|
@ -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 @@ test "creates user relationship record if it doesn't exist", %{users: [user1, us
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue