diff options
author | lain <lain@soykaf.club> | 2019-01-07 12:41:31 +0100 |
---|---|---|
committer | lain <lain@soykaf.club> | 2019-01-07 12:41:31 +0100 |
commit | 7382adf407301945e30ee38aa4efe28a819fcf44 (patch) | |
tree | 6097b4ed0f492ddb956787f8a0e3d9ed26bbea02 /test | |
parent | b0e8e521fbbae4f601c6d2f449ea0e3effe57932 (diff) | |
download | pleroma-7382adf407301945e30ee38aa4efe28a819fcf44.tar.gz pleroma-7382adf407301945e30ee38aa4efe28a819fcf44.zip |
Make TwAPI UserView more resilient to issues.
Will work for missing users and badly migrated users.
Diffstat (limited to 'test')
-rw-r--r-- | test/web/twitter_api/views/activity_view_test.exs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/web/twitter_api/views/activity_view_test.exs b/test/web/twitter_api/views/activity_view_test.exs index 05780a54a..7f003c214 100644 --- a/test/web/twitter_api/views/activity_view_test.exs +++ b/test/web/twitter_api/views/activity_view_test.exs @@ -25,6 +25,34 @@ defmodule Pleroma.Web.TwitterAPI.ActivityViewTest do import Mock + test "returns an error user for activities missing users" do + user = insert(:user) + + {:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!", "visibility" => "direct"}) + + Repo.delete(user) + Cachex.clear(:user_cache) + + result = ActivityView.render("activity.json", activity: activity) + assert result + end + + test "tries to get a user by nickname if fetching by ap_id doesn't work" do + user = insert(:user) + + {:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!", "visibility" => "direct"}) + + {:ok, user} = + user + |> Ecto.Changeset.change(%{ap_id: "#{user.ap_id}/extension/#{user.nickname}"}) + |> Repo.update() + + Cachex.clear(:user_cache) + + result = ActivityView.render("activity.json", activity: activity) + assert result["user"]["id"] == user.id + end + test "a create activity with a html status" do text = """ #Bike log - Commute Tuesday\nhttps://pla.bike/posts/20181211/\n#cycling #CHScycling #commute\nMVIMG_20181211_054020.jpg |