diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/bbs/handler_test.exs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/test/bbs/handler_test.exs b/test/bbs/handler_test.exs index ee5f194bb..a22c6d64d 100644 --- a/test/bbs/handler_test.exs +++ b/test/bbs/handler_test.exs @@ -3,9 +3,12 @@ defmodule Pleroma.BBS.HandlerTest do alias Pleroma.BBS.Handler alias Pleroma.Web.CommonAPI alias Pleroma.User + alias Pleroma.Repo + alias Pleroma.Activity import ExUnit.CaptureIO import Pleroma.Factory + import Ecto.Query test "getting the home timeline" do user = insert(:user) @@ -27,4 +30,51 @@ defmodule Pleroma.BBS.HandlerTest do assert output =~ "hey" assert output =~ "hello" end + + test "posting" do + user = insert(:user) + + output = + capture_io(fn -> + Handler.handle_command(%{user: user}, "p this is a test post") + end) + + assert output =~ "Posted" + + activity = + Repo.one( + from(a in Activity, + where: fragment("?->>'type' = ?", a.data, "Create") + ) + ) + + assert activity.actor == user.ap_id + assert activity.data["object"]["content"] == "this is a test post" + end + + test "replying" do + user = insert(:user) + another_user = insert(:user) + + {:ok, activity} = CommonAPI.post(another_user, %{"status" => "this is a test post"}) + + output = + capture_io(fn -> + Handler.handle_command(%{user: user}, "r #{activity.id} this is a reply") + end) + + assert output =~ "Replied" + + reply = + Repo.one( + from(a in Activity, + where: fragment("?->>'type' = ?", a.data, "Create"), + where: a.actor == ^user.ap_id + ) + ) + + assert reply.actor == user.ap_id + assert reply.data["object"]["content"] == "this is a reply" + assert reply.data["object"]["inReplyTo"] == activity.data["object"]["id"] + end end |