projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Support validation for inline OpenAPI schema and automatic tests for examples
[akkoma]
/
test
/
web
/
mastodon_api
/
controllers
/
status_controller_test.exs
diff --git
a/test/web/mastodon_api/controllers/status_controller_test.exs
b/test/web/mastodon_api/controllers/status_controller_test.exs
index beb5477808161cf317f1cefd3893157f762281d1..85068edd00eddf9a0551073ed6273d1962604f6d 100644
(file)
--- a/
test/web/mastodon_api/controllers/status_controller_test.exs
+++ b/
test/web/mastodon_api/controllers/status_controller_test.exs
@@
-19,9
+19,9
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
import Pleroma.Factory
import Pleroma.Factory
- clear_config([:instance, :federating])
- clear_config([:instance, :allow_relay])
- clear_config([:rich_media, :enabled])
+
setup do:
clear_config([:instance, :federating])
+
setup do:
clear_config([:instance, :allow_relay])
+
setup do:
clear_config([:rich_media, :enabled])
describe "posting statuses" do
setup do: oauth_access(["write:statuses"])
describe "posting statuses" do
setup do: oauth_access(["write:statuses"])
@@
-302,6
+302,17
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
assert [] == Repo.all(Activity)
end
assert [] == Repo.all(Activity)
end
+ test "ignores nil values", %{conn: conn} do
+ conn =
+ post(conn, "/api/v1/statuses", %{
+ "status" => "not scheduled",
+ "scheduled_at" => nil
+ })
+
+ assert result = json_response(conn, 200)
+ assert Activity.get_by_id(result["id"])
+ end
+
test "creates a scheduled activity with a media attachment", %{user: user, conn: conn} do
scheduled_at = NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(120), :millisecond)
test "creates a scheduled activity with a media attachment", %{user: user, conn: conn} do
scheduled_at = NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(120), :millisecond)
@@
-485,13
+496,9
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
describe "status with restrict unauthenticated activities for local and remote" do
setup do: local_and_remote_activities()
describe "status with restrict unauthenticated activities for local and remote" do
setup do: local_and_remote_activities()
- clear_config([:restrict_unauthenticated, :activities, :local]) do
- Config.put([:restrict_unauthenticated, :activities, :local], true)
- end
+ setup do: clear_config([:restrict_unauthenticated, :activities, :local], true)
- clear_config([:restrict_unauthenticated, :activities, :remote]) do
- Config.put([:restrict_unauthenticated, :activities, :remote], true)
- end
+ setup do: clear_config([:restrict_unauthenticated, :activities, :remote], true)
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses/#{local.id}")
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses/#{local.id}")
@@
-520,9
+527,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
describe "status with restrict unauthenticated activities for local" do
setup do: local_and_remote_activities()
describe "status with restrict unauthenticated activities for local" do
setup do: local_and_remote_activities()
- clear_config([:restrict_unauthenticated, :activities, :local]) do
- Config.put([:restrict_unauthenticated, :activities, :local], true)
- end
+ setup do: clear_config([:restrict_unauthenticated, :activities, :local], true)
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses/#{local.id}")
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses/#{local.id}")
@@
-548,9
+553,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
describe "status with restrict unauthenticated activities for remote" do
setup do: local_and_remote_activities()
describe "status with restrict unauthenticated activities for remote" do
setup do: local_and_remote_activities()
- clear_config([:restrict_unauthenticated, :activities, :remote]) do
- Config.put([:restrict_unauthenticated, :activities, :remote], true)
- end
+ setup do: clear_config([:restrict_unauthenticated, :activities, :remote], true)
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses/#{local.id}")
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses/#{local.id}")
@@
-614,13
+617,9
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
describe "getting statuses by ids with restricted unauthenticated for local and remote" do
setup do: local_and_remote_activities()
describe "getting statuses by ids with restricted unauthenticated for local and remote" do
setup do: local_and_remote_activities()
- clear_config([:restrict_unauthenticated, :activities, :local]) do
- Config.put([:restrict_unauthenticated, :activities, :local], true)
- end
+ setup do: clear_config([:restrict_unauthenticated, :activities, :local], true)
- clear_config([:restrict_unauthenticated, :activities, :remote]) do
- Config.put([:restrict_unauthenticated, :activities, :remote], true)
- end
+ setup do: clear_config([:restrict_unauthenticated, :activities, :remote], true)
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]})
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]})
@@
-640,9
+639,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
describe "getting statuses by ids with restricted unauthenticated for local" do
setup do: local_and_remote_activities()
describe "getting statuses by ids with restricted unauthenticated for local" do
setup do: local_and_remote_activities()
- clear_config([:restrict_unauthenticated, :activities, :local]) do
- Config.put([:restrict_unauthenticated, :activities, :local], true)
- end
+ setup do: clear_config([:restrict_unauthenticated, :activities, :local], true)
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]})
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]})
@@
-663,9
+660,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
describe "getting statuses by ids with restricted unauthenticated for remote" do
setup do: local_and_remote_activities()
describe "getting statuses by ids with restricted unauthenticated for remote" do
setup do: local_and_remote_activities()
- clear_config([:restrict_unauthenticated, :activities, :remote]) do
- Config.put([:restrict_unauthenticated, :activities, :remote], true)
- end
+ setup do: clear_config([:restrict_unauthenticated, :activities, :remote], true)
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]})
test "if user is unauthenticated", %{conn: conn, local: local, remote: remote} do
res_conn = get(conn, "/api/v1/statuses", %{ids: [local.id, remote.id]})
@@
-791,7
+786,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
user1 = insert(:user)
user2 = insert(:user)
user3 = insert(:user)
user1 = insert(:user)
user2 = insert(:user)
user3 = insert(:user)
-
CommonAPI.favorite(activity.id, user2
)
+
{:ok, _} = CommonAPI.favorite(user2, activity.id
)
{:ok, _bookmark} = Pleroma.Bookmark.create(user2.id, activity.id)
{:ok, reblog_activity1, _object} = CommonAPI.repeat(activity.id, user1)
{:ok, _, _object} = CommonAPI.repeat(activity.id, user2)
{:ok, _bookmark} = Pleroma.Bookmark.create(user2.id, activity.id)
{:ok, reblog_activity1, _object} = CommonAPI.repeat(activity.id, user1)
{:ok, _, _object} = CommonAPI.repeat(activity.id, user2)
@@
-866,11
+861,15
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
activity = insert(:note_activity)
post(conn, "/api/v1/statuses/#{activity.id}/favourite")
activity = insert(:note_activity)
post(conn, "/api/v1/statuses/#{activity.id}/favourite")
- assert post(conn, "/api/v1/statuses/#{activity.id}/favourite") |> json_response(200)
+
+ assert post(conn, "/api/v1/statuses/#{activity.id}/favourite")
+ |> json_response(200)
end
test "returns 404 error for a wrong id", %{conn: conn} do
end
test "returns 404 error for a wrong id", %{conn: conn} do
- conn = post(conn, "/api/v1/statuses/1/favourite")
+ conn =
+ conn
+ |> post("/api/v1/statuses/1/favourite")
assert json_response(conn, 404) == %{"error" => "Record not found"}
end
assert json_response(conn, 404) == %{"error" => "Record not found"}
end
@@
-882,7
+881,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
test "unfavorites a status and returns it", %{user: user, conn: conn} do
activity = insert(:note_activity)
test "unfavorites a status and returns it", %{user: user, conn: conn} do
activity = insert(:note_activity)
- {:ok, _
, _} = CommonAPI.favorite(activity.id, user
)
+ {:ok, _
} = CommonAPI.favorite(user, activity.id
)
conn = post(conn, "/api/v1/statuses/#{activity.id}/unfavourite")
conn = post(conn, "/api/v1/statuses/#{activity.id}/unfavourite")
@@
-908,7
+907,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
%{activity: activity}
end
%{activity: activity}
end
- clear_config([:instance, :max_pinned_statuses], 1)
+
setup do:
clear_config([:instance, :max_pinned_statuses], 1)
test "pin status", %{conn: conn, user: user, activity: activity} do
id_str = to_string(activity.id)
test "pin status", %{conn: conn, user: user, activity: activity} do
id_str = to_string(activity.id)
@@
-1059,6
+1058,8
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
end
test "bookmarks" do
end
test "bookmarks" do
+ bookmarks_uri = "/api/v1/bookmarks?with_relationships=true"
+
%{conn: conn} = oauth_access(["write:bookmarks", "read:bookmarks"])
author = insert(:user)
%{conn: conn} = oauth_access(["write:bookmarks", "read:bookmarks"])
author = insert(:user)
@@
-1080,7
+1081,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
assert json_response(response2, 200)["bookmarked"] == true
assert json_response(response2, 200)["bookmarked"] == true
- bookmarks = get(conn,
"/api/v1/bookmarks"
)
+ bookmarks = get(conn,
bookmarks_uri
)
assert [json_response(response2, 200), json_response(response1, 200)] ==
json_response(bookmarks, 200)
assert [json_response(response2, 200), json_response(response1, 200)] ==
json_response(bookmarks, 200)
@@
-1089,7
+1090,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
assert json_response(response1, 200)["bookmarked"] == false
assert json_response(response1, 200)["bookmarked"] == false
- bookmarks = get(conn,
"/api/v1/bookmarks"
)
+ bookmarks = get(conn,
bookmarks_uri
)
assert [json_response(response2, 200)] == json_response(bookmarks, 200)
end
assert [json_response(response2, 200)] == json_response(bookmarks, 200)
end
@@
-1192,7
+1193,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
test "returns users who have favorited the status", %{conn: conn, activity: activity} do
other_user = insert(:user)
test "returns users who have favorited the status", %{conn: conn, activity: activity} do
other_user = insert(:user)
- {:ok, _
, _} = CommonAPI.favorite(activity.id, other_user
)
+ {:ok, _
} = CommonAPI.favorite(other_user, activity.id
)
response =
conn
response =
conn
@@
-1223,7
+1224,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
other_user = insert(:user)
{:ok, _user_relationship} = User.block(user, other_user)
other_user = insert(:user)
{:ok, _user_relationship} = User.block(user, other_user)
- {:ok, _
, _} = CommonAPI.favorite(activity.id, other_user
)
+ {:ok, _
} = CommonAPI.favorite(other_user, activity.id
)
response =
conn
response =
conn
@@
-1235,7
+1236,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
test "does not fail on an unauthenticated request", %{activity: activity} do
other_user = insert(:user)
test "does not fail on an unauthenticated request", %{activity: activity} do
other_user = insert(:user)
- {:ok, _
, _} = CommonAPI.favorite(activity.id, other_user
)
+ {:ok, _
} = CommonAPI.favorite(other_user, activity.id
)
response =
build_conn()
response =
build_conn()
@@
-1255,7
+1256,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
"visibility" => "direct"
})
"visibility" => "direct"
})
- {:ok, _
, _} = CommonAPI.favorite(activity.id, other_user
)
+ {:ok, _
} = CommonAPI.favorite(other_user, activity.id
)
favourited_by_url = "/api/v1/statuses/#{activity.id}/favourited_by"
favourited_by_url = "/api/v1/statuses/#{activity.id}/favourited_by"
@@
-1415,7
+1416,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
{:ok, _} = CommonAPI.post(other_user, %{"status" => "bla"})
{:ok, activity} = CommonAPI.post(other_user, %{"status" => "traps are happy"})
{:ok, _} = CommonAPI.post(other_user, %{"status" => "bla"})
{:ok, activity} = CommonAPI.post(other_user, %{"status" => "traps are happy"})
- {:ok, _
, _} = CommonAPI.favorite(activity.id, user
)
+ {:ok, _
} = CommonAPI.favorite(user, activity.id
)
first_conn = get(conn, "/api/v1/favourites")
first_conn = get(conn, "/api/v1/favourites")
@@
-1432,7
+1433,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
"Trees Are Never Sad Look At Them Every Once In Awhile They're Quite Beautiful."
})
"Trees Are Never Sad Look At Them Every Once In Awhile They're Quite Beautiful."
})
- {:ok, _
, _} = CommonAPI.favorite(second_activity.id, user
)
+ {:ok, _
} = CommonAPI.favorite(user, second_activity.id
)
last_like = status["id"]
last_like = status["id"]