distraction.party/test/pleroma/web/preload/providers/user_test.exs
lain 9ba60f70d2 Tests: Make as many tests as possible async.
In general, tests that match these criteria can be made async:

- Doesn't use real Cachex.
- Doesn't write to the Config / Application Environment.
- Uses Mock. Using Mox is fine.
- Uses the streamer.
2020-12-21 12:21:40 +01:00

33 lines
938 B
Elixir

# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.Preload.Providers.UserTest do
use Pleroma.DataCase, async: true
import Pleroma.Factory
alias Pleroma.Web.Preload.Providers.User
describe "returns empty when user doesn't exist" do
test "nil user specified" do
assert User.generate_terms(%{user: nil}) == %{}
end
test "missing user specified" do
assert User.generate_terms(%{user: :not_a_user}) == %{}
end
end
describe "specified user exists" do
setup do
user = insert(:user)
terms = User.generate_terms(%{user: user})
%{terms: terms, user: user}
end
test "account is rendered", %{terms: terms, user: user} do
account = terms["/api/v1/accounts/#{user.id}"]
assert %{acct: user, username: user} = account
end
end
end