diff options
| author | Egor Kislitsyn <egor@kislitsyn.com> | 2019-05-14 19:00:07 +0700 | 
|---|---|---|
| committer | Egor Kislitsyn <egor@kislitsyn.com> | 2019-05-14 19:00:07 +0700 | 
| commit | e82e73478e577782407bc8452d17925675d99d10 (patch) | |
| tree | 0784beff0a57cbeb239215314e0436b7f0a5253f /test/bbs | |
| parent | 23276e8d6848fa8eae390c16b6e0619c12546e4a (diff) | |
| parent | cdcdbd88da76f18c21da7f6f15a29883044902c8 (diff) | |
| download | pleroma-e82e73478e577782407bc8452d17925675d99d10.tar.gz pleroma-e82e73478e577782407bc8452d17925675d99d10.zip | |
Merge remote-tracking branch 'pleroma/develop' into feature/addressable-lists
Diffstat (limited to 'test/bbs')
| -rw-r--r-- | test/bbs/handler_test.exs | 83 | 
1 files changed, 83 insertions, 0 deletions
| diff --git a/test/bbs/handler_test.exs b/test/bbs/handler_test.exs new file mode 100644 index 000000000..7d5d68d11 --- /dev/null +++ b/test/bbs/handler_test.exs @@ -0,0 +1,83 @@ +defmodule Pleroma.BBS.HandlerTest do +  use Pleroma.DataCase +  alias Pleroma.Activity +  alias Pleroma.BBS.Handler +  alias Pleroma.Object +  alias Pleroma.Repo +  alias Pleroma.User +  alias Pleroma.Web.CommonAPI + +  import ExUnit.CaptureIO +  import Pleroma.Factory +  import Ecto.Query + +  test "getting the home timeline" do +    user = insert(:user) +    followed = insert(:user) + +    {:ok, user} = User.follow(user, followed) + +    {:ok, _first} = CommonAPI.post(user, %{"status" => "hey"}) +    {:ok, _second} = CommonAPI.post(followed, %{"status" => "hello"}) + +    output = +      capture_io(fn -> +        Handler.handle_command(%{user: user}, "home") +      end) + +    assert output =~ user.nickname +    assert output =~ followed.nickname + +    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 +    object = Object.normalize(activity) +    assert object.data["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 +    object = Object.normalize(reply) +    assert object.data["content"] == "this is a reply" +    assert object.data["inReplyTo"] == activity.data["object"] +  end +end | 
