Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags...
[akkoma] / test / pleroma / web / mastodon_api / controllers / status_controller_test.exs
index bae2ad4bfad19f242cf4f63b957919f8a4ab9039..bd385bccde6be6ea360c2aa68aaa0bd0879400b6 100644 (file)
@@ -364,8 +364,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
 
       %Pleroma.Web.OAuth.Token{
         app: %Pleroma.Web.OAuth.App{
-          client_name: _app_name,
-          website: _app_website
+          client_name: app_name,
+          website: app_website
         }
       } = token
 
@@ -379,8 +379,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
       assert %{
                "content" => "cofe is my copilot",
                "application" => %{
-                 "name" => app_name,
-                 "website" => app_website
+                 "name" => ^app_name,
+                 "website" => ^app_website
                }
              } = json_response_and_validate_schema(result, 200)
     end
@@ -427,6 +427,31 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
       assert [] == Repo.all(Activity)
     end
 
+    test "with expiration" do
+      %{conn: conn} = oauth_access(["write:statuses", "read:statuses"])
+
+      scheduled_at =
+        NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(6), :millisecond)
+        |> NaiveDateTime.to_iso8601()
+        |> Kernel.<>("Z")
+
+      assert %{"id" => status_id, "params" => %{"expires_in" => 300}} =
+               conn
+               |> put_req_header("content-type", "application/json")
+               |> post("/api/v1/statuses", %{
+                 "status" => "scheduled",
+                 "scheduled_at" => scheduled_at,
+                 "expires_in" => 300
+               })
+               |> json_response_and_validate_schema(200)
+
+      assert %{"id" => ^status_id, "params" => %{"expires_in" => 300}} =
+               conn
+               |> put_req_header("content-type", "application/json")
+               |> get("/api/v1/scheduled_statuses/#{status_id}")
+               |> json_response_and_validate_schema(200)
+    end
+
     test "ignores nil values", %{conn: conn} do
       conn =
         conn