diff options
author | Tusooa Zhu <tusooa@kazv.moe> | 2022-03-08 16:19:35 -0500 |
---|---|---|
committer | Tusooa Zhu <tusooa@kazv.moe> | 2022-03-08 16:19:35 -0500 |
commit | aa1fff279e98c6d16095538382413d3b870cee2b (patch) | |
tree | bfc0e68acd88f8b401b13ee5015928e80bc969a8 /test | |
parent | 5169ad8f143d613f3fa179f88e2be6a16445df41 (diff) | |
download | pleroma-aa1fff279e98c6d16095538382413d3b870cee2b.tar.gz pleroma-aa1fff279e98c6d16095538382413d3b870cee2b.zip |
Implement GET /api/v1/announcements/:id
Diffstat (limited to 'test')
-rw-r--r-- | test/pleroma/web/mastodon_api/controllers/announcement_controller_test.exs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/pleroma/web/mastodon_api/controllers/announcement_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/announcement_controller_test.exs index 134db5fcc..090a2706b 100644 --- a/test/pleroma/web/mastodon_api/controllers/announcement_controller_test.exs +++ b/test/pleroma/web/mastodon_api/controllers/announcement_controller_test.exs @@ -51,4 +51,56 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do assert [%{"id" => ^id, "read" => true}] = response end end + + describe "GET /api/v1/announcements/:id" do + test "it shows one announcement" do + %{id: id} = insert(:announcement) + + response = + build_conn() + |> get("/api/v1/announcements/#{id}") + |> json_response_and_validate_schema(:ok) + + assert %{"id" => ^id} = response + refute Map.has_key?(response, "read") + end + + test "it gives 404 for non-existent announcements" do + %{id: id} = insert(:announcement) + + _response = + build_conn() + |> get("/api/v1/announcements/#{id}xxx") + |> json_response_and_validate_schema(:not_found) + end + + test "when authenticated, also expose read property" do + %{id: id} = insert(:announcement) + + %{conn: conn} = oauth_access(["read:accounts"]) + + response = + conn + |> get("/api/v1/announcements/#{id}") + |> json_response_and_validate_schema(:ok) + + assert %{"id" => ^id, "read" => false} = response + end + + test "when authenticated and announcement is read by user" do + %{id: id} = announcement = insert(:announcement) + user = insert(:user) + + AnnouncementReadRelationship.mark_read(user, announcement) + + %{conn: conn} = oauth_access(["read:accounts"], user: user) + + response = + conn + |> get("/api/v1/announcements/#{id}") + |> json_response_and_validate_schema(:ok) + + assert %{"id" => ^id, "read" => true} = response + end + end end |