Add test for conversation API beforehand

This commit is contained in:
Haelwenn (lanodan) Monnier 2019-03-17 15:37:55 +01:00
parent 6d6f48d079
commit 42d034505a
No known key found for this signature in database
GPG Key ID: D5B7A8E43C997DEE
1 changed files with 51 additions and 0 deletions

View File

@ -248,6 +248,57 @@ test "direct timeline", %{conn: conn} do
assert status["url"] != direct.data["id"] assert status["url"] != direct.data["id"]
end end
test "Conversations", %{conn: conn} do
user_one = insert(:user)
user_two = insert(:user)
{:ok, user_two} = User.follow(user_two, user_one)
{:ok, direct} =
CommonAPI.post(user_one, %{
"status" => "Hi @#{user_two.nickname}!",
"visibility" => "direct"
})
{:ok, _follower_only} =
CommonAPI.post(user_one, %{
"status" => "Hi @#{user_two.nickname}!",
"visibility" => "private"
})
res_conn =
conn
|> assign(:user, user)
|> get("/api/v1/conversations")
assert response = json_response(res_conn, 200)
assert %{
"id" => res_id,
"accounts" => res_accounts,
"last_status" => res_last_status,
"unread" => unread
} = reponse
assert unread == false
# Apparently undocumented API endpoint
res_conn =
conn
|> assign(:user, user)
|> get("/api/v1/conversations/#{res_id}/read")
assert response == json_response(res_conn, 200)
# (vanilla) Mastodon frontend behaviour
res_conn =
conn
|> assign(:user, user)
|> get("/api/v1/statuses/#{res_last_status.id}/context")
assert %{ancestors: [], descendants: []} == json_response(res_conn, 200)
end
test "doesn't include DMs from blocked users", %{conn: conn} do test "doesn't include DMs from blocked users", %{conn: conn} do
blocker = insert(:user) blocker = insert(:user)
blocked = insert(:user) blocked = insert(:user)