make bulk user creation from admin works as a transaction
[akkoma] / test / web / rich_media / helpers_test.exs
1 defmodule Pleroma.Web.RichMedia.HelpersTest do
2 use Pleroma.DataCase
3
4 alias Pleroma.Web.CommonAPI
5
6 import Pleroma.Factory
7 import Tesla.Mock
8
9 setup do
10 mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
11 :ok
12 end
13
14 test "refuses to crawl incomplete URLs" do
15 user = insert(:user)
16
17 {:ok, activity} =
18 CommonAPI.post(user, %{
19 "status" => "[test](example.com/ogp)",
20 "content_type" => "text/markdown"
21 })
22
23 Pleroma.Config.put([:rich_media, :enabled], true)
24
25 assert %{} == Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
26
27 Pleroma.Config.put([:rich_media, :enabled], false)
28 end
29
30 test "refuses to crawl malformed URLs" do
31 user = insert(:user)
32
33 {:ok, activity} =
34 CommonAPI.post(user, %{
35 "status" => "[test](example.com[]/ogp)",
36 "content_type" => "text/markdown"
37 })
38
39 Pleroma.Config.put([:rich_media, :enabled], true)
40
41 assert %{} == Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
42
43 Pleroma.Config.put([:rich_media, :enabled], false)
44 end
45
46 test "crawls valid, complete URLs" do
47 user = insert(:user)
48
49 {:ok, activity} =
50 CommonAPI.post(user, %{
51 "status" => "[test](http://example.com/ogp)",
52 "content_type" => "text/markdown"
53 })
54
55 Pleroma.Config.put([:rich_media, :enabled], true)
56
57 assert %{page_url: "http://example.com/ogp", rich_media: _} =
58 Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
59
60 Pleroma.Config.put([:rich_media, :enabled], false)
61 end
62 end