Merge branch 'bugfix/relax-spam-protection' into 'develop'
[akkoma] / test / web / twitter_api / twitter_api_test.exs
index 716fccfb21ae8c2c53bb2e6521e4c8c20c993711..8781061d4c1fad7bb0a1b021fbde32a763a50fd1 100644 (file)
@@ -105,7 +105,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
              get_in(activity.data, ["object", "context"])
 
     assert get_in(reply.data, ["object", "inReplyTo"]) == get_in(activity.data, ["object", "id"])
-    assert get_in(reply.data, ["object", "inReplyToStatusId"]) == activity.id
+    assert Activity.get_in_reply_to_activity(reply).id == activity.id
   end
 
   test "Follow another user using user_id" do
@@ -325,7 +325,9 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
 
     assert user.info.confirmation_pending
 
-    Swoosh.TestAssertions.assert_email_sent(Pleroma.UserEmail.account_confirmation_email(user))
+    Swoosh.TestAssertions.assert_email_sent(
+      Pleroma.Emails.UserEmail.account_confirmation_email(user)
+    )
   end
 
   test "it registers a new user and parses mentions in the bio" do
@@ -370,7 +372,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
     end
 
     test "returns user on success" do
-      {:ok, token} = UserInviteToken.create_token()
+      {:ok, invite} = UserInviteToken.create_invite()
 
       data = %{
         "nickname" => "vinny",
@@ -379,15 +381,15 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
         "bio" => "streamer",
         "password" => "hiptofbees",
         "confirm" => "hiptofbees",
-        "token" => token.token
+        "token" => invite.token
       }
 
       {:ok, user} = TwitterAPI.register_user(data)
 
       fetched_user = User.get_by_nickname("vinny")
-      token = Repo.get_by(UserInviteToken, token: token.token)
+      invite = Repo.get_by(UserInviteToken, token: invite.token)
 
-      assert token.used == true
+      assert invite.used == true
 
       assert UserView.render("show.json", %{user: user}) ==
                UserView.render("show.json", %{user: fetched_user})
@@ -411,8 +413,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
     end
 
     test "returns error on expired token" do
-      {:ok, token} = UserInviteToken.create_token()
-      UserInviteToken.mark_as_used(token.token)
+      {:ok, invite} = UserInviteToken.create_invite()
+      UserInviteToken.update_invite!(invite, used: true)
 
       data = %{
         "nickname" => "GrimReaper",
@@ -421,7 +423,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
         "bio" => "Your time has come",
         "password" => "scythe",
         "confirm" => "scythe",
-        "token" => token.token
+        "token" => invite.token
       }
 
       {:error, msg} = TwitterAPI.register_user(data)
@@ -449,8 +451,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
         "confirm" => "hiptofbees"
       }
 
-      check_fn = fn token ->
-        data = Map.put(data, "token", token.token)
+      check_fn = fn invite ->
+        data = Map.put(data, "token", invite.token)
         {:ok, user} = TwitterAPI.register_user(data)
         fetched_user = User.get_by_nickname("vinny")
 
@@ -462,37 +464,37 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
     end
 
     test "returns user on success", %{check_fn: check_fn} do
-      {:ok, token} = UserInviteToken.create_token(expire_at: Date.utc_today())
+      {:ok, invite} = UserInviteToken.create_invite(%{expires_at: Date.utc_today()})
 
-      check_fn.(token)
+      check_fn.(invite)
 
-      token = Repo.get_by(UserInviteToken, token: token.token)
+      invite = Repo.get_by(UserInviteToken, token: invite.token)
 
-      refute token.used
+      refute invite.used
     end
 
     test "returns user on token which expired tomorrow", %{check_fn: check_fn} do
-      {:ok, token} = UserInviteToken.create_token(expire_at: Date.add(Date.utc_today(), 1))
+      {:ok, invite} = UserInviteToken.create_invite(%{expires_at: Date.add(Date.utc_today(), 1)})
 
-      check_fn.(token)
+      check_fn.(invite)
 
-      token = Repo.get_by(UserInviteToken, token: token.token)
+      invite = Repo.get_by(UserInviteToken, token: invite.token)
 
-      refute token.used
+      refute invite.used
     end
 
     test "returns an error on overdue date", %{data: data} do
-      {:ok, token} = UserInviteToken.create_token(expire_at: Date.add(Date.utc_today(), -1))
+      {:ok, invite} = UserInviteToken.create_invite(%{expires_at: Date.add(Date.utc_today(), -1)})
 
-      data = Map.put(data, "token", token.token)
+      data = Map.put(data, "token", invite.token)
 
       {:error, msg} = TwitterAPI.register_user(data)
 
       assert msg == "Expired token"
       refute User.get_by_nickname("vinny")
-      token = Repo.get_by(UserInviteToken, token: token.token)
+      invite = Repo.get_by(UserInviteToken, token: invite.token)
 
-      assert token.used == true
+      refute invite.used
     end
   end
 
@@ -509,9 +511,9 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
     end
 
     test "returns user on success, after him registration fails" do
-      {:ok, token} = UserInviteToken.create_token(max_use: 100)
+      {:ok, invite} = UserInviteToken.create_invite(%{max_use: 100})
 
-      Ecto.Changeset.change(token, uses: 99) |> Repo.update!()
+      UserInviteToken.update_invite!(invite, uses: 99)
 
       data = %{
         "nickname" => "vinny",
@@ -520,14 +522,14 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
         "bio" => "streamer",
         "password" => "hiptofbees",
         "confirm" => "hiptofbees",
-        "token" => token.token
+        "token" => invite.token
       }
 
       {:ok, user} = TwitterAPI.register_user(data)
       fetched_user = User.get_by_nickname("vinny")
-      token = Repo.get_by(UserInviteToken, token: token.token)
+      invite = Repo.get_by(UserInviteToken, token: invite.token)
 
-      assert token.used == true
+      assert invite.used == true
 
       assert UserView.render("show.json", %{user: user}) ==
                UserView.render("show.json", %{user: fetched_user})
@@ -539,7 +541,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
         "bio" => "Your time has come",
         "password" => "scythe",
         "confirm" => "scythe",
-        "token" => token.token
+        "token" => invite.token
       }
 
       {:error, msg} = TwitterAPI.register_user(data)
@@ -562,11 +564,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
     end
 
     test "returns user on success" do
-      {:ok, token} =
-        UserInviteToken.create_token(
-          expire_at: Date.utc_today(),
-          max_use: 100
-        )
+      {:ok, invite} = UserInviteToken.create_invite(%{expires_at: Date.utc_today(), max_use: 100})
 
       data = %{
         "nickname" => "vinny",
@@ -575,27 +573,23 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
         "bio" => "streamer",
         "password" => "hiptofbees",
         "confirm" => "hiptofbees",
-        "token" => token.token
+        "token" => invite.token
       }
 
       {:ok, user} = TwitterAPI.register_user(data)
       fetched_user = User.get_by_nickname("vinny")
-      token = Repo.get_by(UserInviteToken, token: token.token)
+      invite = Repo.get_by(UserInviteToken, token: invite.token)
 
-      refute token.used
+      refute invite.used
 
       assert UserView.render("show.json", %{user: user}) ==
                UserView.render("show.json", %{user: fetched_user})
     end
 
     test "error after max uses" do
-      {:ok, token} =
-        UserInviteToken.create_token(
-          expire_at: Date.utc_today(),
-          max_use: 100
-        )
+      {:ok, invite} = UserInviteToken.create_invite(%{expires_at: Date.utc_today(), max_use: 100})
 
-      Ecto.Changeset.change(token, uses: 99) |> Repo.update!()
+      UserInviteToken.update_invite!(invite, uses: 99)
 
       data = %{
         "nickname" => "vinny",
@@ -604,13 +598,13 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
         "bio" => "streamer",
         "password" => "hiptofbees",
         "confirm" => "hiptofbees",
-        "token" => token.token
+        "token" => invite.token
       }
 
       {:ok, user} = TwitterAPI.register_user(data)
       fetched_user = User.get_by_nickname("vinny")
-      token = Repo.get_by(UserInviteToken, token: token.token)
-      assert token.used == true
+      invite = Repo.get_by(UserInviteToken, token: invite.token)
+      assert invite.used == true
 
       assert UserView.render("show.json", %{user: user}) ==
                UserView.render("show.json", %{user: fetched_user})
@@ -622,7 +616,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
         "bio" => "Your time has come",
         "password" => "scythe",
         "confirm" => "scythe",
-        "token" => token.token
+        "token" => invite.token
       }
 
       {:error, msg} = TwitterAPI.register_user(data)
@@ -632,11 +626,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
     end
 
     test "returns error on overdue date" do
-      {:ok, token} =
-        UserInviteToken.create_token(
-          expire_at: Date.add(Date.utc_today(), -1),
-          max_use: 100
-        )
+      {:ok, invite} =
+        UserInviteToken.create_invite(%{expires_at: Date.add(Date.utc_today(), -1), max_use: 100})
 
       data = %{
         "nickname" => "GrimReaper",
@@ -645,7 +636,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
         "bio" => "Your time has come",
         "password" => "scythe",
         "confirm" => "scythe",
-        "token" => token.token
+        "token" => invite.token
       }
 
       {:error, msg} = TwitterAPI.register_user(data)
@@ -655,13 +646,10 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
     end
 
     test "returns error on with overdue date and after max" do
-      {:ok, token} =
-        UserInviteToken.create_token(
-          expire_at: Date.add(Date.utc_today(), -1),
-          max_use: 100
-        )
+      {:ok, invite} =
+        UserInviteToken.create_invite(%{expires_at: Date.add(Date.utc_today(), -1), max_use: 100})
 
-      Ecto.Changeset.change(token, uses: 100) |> Repo.update!()
+      UserInviteToken.update_invite!(invite, uses: 100)
 
       data = %{
         "nickname" => "GrimReaper",
@@ -670,7 +658,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
         "bio" => "Your time has come",
         "password" => "scythe",
         "confirm" => "scythe",
-        "token" => token.token
+        "token" => invite.token
       }
 
       {:error, msg} = TwitterAPI.register_user(data)