Merge branch 'develop' into global-status-expiration
[akkoma] / test / web / mastodon_api / controllers / custom_emoji_controller_test.exs
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.MastodonAPI.CustomEmojiControllerTest do
6 use Pleroma.Web.ConnCase, async: true
7 alias Pleroma.Web.ApiSpec
8 alias Pleroma.Web.ApiSpec.Schemas.CustomEmoji
9 alias Pleroma.Web.ApiSpec.Schemas.CustomEmojisResponse
10 import OpenApiSpex.TestAssertions
11
12 test "with tags", %{conn: conn} do
13 assert resp =
14 conn
15 |> get("/api/v1/custom_emojis")
16 |> json_response(200)
17
18 assert [emoji | _body] = resp
19 assert Map.has_key?(emoji, "shortcode")
20 assert Map.has_key?(emoji, "static_url")
21 assert Map.has_key?(emoji, "tags")
22 assert is_list(emoji["tags"])
23 assert Map.has_key?(emoji, "category")
24 assert Map.has_key?(emoji, "url")
25 assert Map.has_key?(emoji, "visible_in_picker")
26 assert_schema(resp, "CustomEmojisResponse", ApiSpec.spec())
27 assert_schema(emoji, "CustomEmoji", ApiSpec.spec())
28 end
29
30 test "CustomEmoji example matches schema" do
31 api_spec = ApiSpec.spec()
32 schema = CustomEmoji.schema()
33 assert_schema(schema.example, "CustomEmoji", api_spec)
34 end
35
36 test "CustomEmojisResponse example matches schema" do
37 api_spec = ApiSpec.spec()
38 schema = CustomEmojisResponse.schema()
39 assert_schema(schema.example, "CustomEmojisResponse", api_spec)
40 end
41 end