distraction.party/test/pleroma/web/o_auth/token/utils_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

53 lines
1.5 KiB
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.OAuth.Token.UtilsTest do
use Pleroma.DataCase, async: true
alias Pleroma.Web.OAuth.Token.Utils
import Pleroma.Factory
describe "fetch_app/1" do
test "returns error when credentials is invalid" do
assert {:error, :not_found} =
Utils.fetch_app(%Plug.Conn{params: %{"client_id" => 1, "client_secret" => "x"}})
end
test "returns App by params credentails" do
app = insert(:oauth_app)
assert {:ok, load_app} =
Utils.fetch_app(%Plug.Conn{
params: %{"client_id" => app.client_id, "client_secret" => app.client_secret}
})
assert load_app == app
end
test "returns App by header credentails" do
app = insert(:oauth_app)
header = "Basic " <> Base.encode64("#{app.client_id}:#{app.client_secret}")
conn =
%Plug.Conn{}
|> Plug.Conn.put_req_header("authorization", header)
assert {:ok, load_app} = Utils.fetch_app(conn)
assert load_app == app
end
end
describe "format_created_at/1" do
test "returns formatted created at" do
token = insert(:oauth_token)
date = Utils.format_created_at(token)
token_date =
token.inserted_at
|> DateTime.from_naive!("Etc/UTC")
|> DateTime.to_unix()
assert token_date == date
end
end
end