summaryrefslogtreecommitdiff
path: root/test/pleroma/web/o_auth/token/utils_test.exs
blob: e688ad7504b69205504ff90dcee86fc37b545645 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 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