Merge remote-tracking branch 'upstream/develop' into email-fix-develop
authorAlex Gleason <alex@alexgleason.me>
Tue, 22 Sep 2020 18:37:02 +0000 (13:37 -0500)
committerAlex Gleason <alex@alexgleason.me>
Tue, 22 Sep 2020 18:37:02 +0000 (13:37 -0500)
1  2 
test/user_test.exs
test/web/admin_api/controllers/admin_api_controller_test.exs

diff --combined test/user_test.exs
index 9cabb501c169c3dabb87d381a7d029949ca09d8c,cceb14eb9525cf94707b2f15999a5e4a068e6695..d506f704708a6c7f501bf51db735b8f5cd301b21
@@@ -509,12 -509,7 +509,12 @@@ defmodule Pleroma.UserTest d
        cng = User.register_changeset(%User{}, @full_user_data)
        {:ok, registered_user} = User.register(cng)
        ObanHelpers.perform_all()
 -      assert_email_sent(Pleroma.Emails.UserEmail.account_confirmation_email(registered_user))
 +
 +      Pleroma.Emails.UserEmail.account_confirmation_email(registered_user)
 +      # temporary hackney fix until hackney max_connections bug is fixed
 +      # https://git.pleroma.social/pleroma/pleroma/-/issues/2101
 +      |> Swoosh.Email.put_private(:hackney_options, ssl_options: [versions: [:"tlsv1.2"]])
 +      |> assert_email_sent()
      end
  
      test "it requires an email, name, nickname and password, bio is optional when account_activation_required is enabled" do
      end
    end
  
-   describe "follow_import" do
-     test "it imports user followings from list" do
-       [user1, user2, user3] = insert_list(3, :user)
-       identifiers = [
-         user2.ap_id,
-         user3.nickname
-       ]
-       {:ok, job} = User.follow_import(user1, identifiers)
-       assert {:ok, result} = ObanHelpers.perform(job)
-       assert is_list(result)
-       assert result == [user2, user3]
-     end
-   end
    describe "mutes" do
      test "it mutes people" do
        user = insert(:user)
      end
    end
  
-   describe "blocks_import" do
-     test "it imports user blocks from list" do
-       [user1, user2, user3] = insert_list(3, :user)
-       identifiers = [
-         user2.ap_id,
-         user3.nickname
-       ]
-       {:ok, job} = User.blocks_import(user1, identifiers)
-       assert {:ok, result} = ObanHelpers.perform(job)
-       assert is_list(result)
-       assert result == [user2, user3]
-     end
-   end
    describe "get_recipients_from_activity" do
      test "works for announces" do
        actor = insert(:user)
      user = User.get_by_id(user.id)
  
      assert %User{
-              bio: nil,
+              bio: "",
               raw_bio: nil,
               email: nil,
               name: nil,
        assert User.visible_for(user, user) == :visible
      end
  
-     test "returns false when the account is unauthenticated and auth is required" do
+     test "returns false when the account is unconfirmed and confirmation is required" do
        Pleroma.Config.put([:instance, :account_activation_required], true)
  
        user = insert(:user, local: true, confirmation_pending: true)
        refute User.visible_for(user, other_user) == :visible
      end
  
-     test "returns true when the account is unauthenticated and auth is not required" do
+     test "returns true when the account is unconfirmed and confirmation is required but the account is remote" do
+       Pleroma.Config.put([:instance, :account_activation_required], true)
+       user = insert(:user, local: false, confirmation_pending: true)
+       other_user = insert(:user, local: true)
+       assert User.visible_for(user, other_user) == :visible
+     end
+     test "returns true when the account is unconfirmed and confirmation is not required" do
        user = insert(:user, local: true, confirmation_pending: true)
        other_user = insert(:user, local: true)
  
        assert User.visible_for(user, other_user) == :visible
      end
  
-     test "returns true when the account is unauthenticated and being viewed by a privileged account (auth required)" do
+     test "returns true when the account is unconfirmed and being viewed by a privileged account (confirmation required)" do
        Pleroma.Config.put([:instance, :account_activation_required], true)
  
        user = insert(:user, local: true, confirmation_pending: true)
index f1e9b89386b0c633d456b884bfc6a9d4b63a232f,e4d3512deb0ad163acc007a1e2a222c9ebe70762..cba6b43d32a7d1a3e8519d5ebcc74d55e025256b
@@@ -203,7 -203,7 +203,7 @@@ defmodule Pleroma.Web.AdminAPI.AdminAPI
          assert user.note_count == 0
          assert user.follower_count == 0
          assert user.following_count == 0
-         assert user.bio == nil
+         assert user.bio == ""
          assert user.name == nil
  
          assert called(Pleroma.Web.Federator.publish(:_))
      end
    end
  
+   describe "GET /api/pleroma/admin/users/:nickname/chats" do
+     setup do
+       user = insert(:user)
+       recipients = insert_list(3, :user)
+       Enum.each(recipients, fn recipient ->
+         CommonAPI.post_chat_message(user, recipient, "yo")
+       end)
+       %{user: user}
+     end
+     test "renders user's chats", %{conn: conn, user: user} do
+       conn = get(conn, "/api/pleroma/admin/users/#{user.nickname}/chats")
+       assert json_response(conn, 200) |> length() == 3
+     end
+   end
+   describe "GET /api/pleroma/admin/users/:nickname/chats unauthorized" do
+     setup do
+       user = insert(:user)
+       recipient = insert(:user)
+       CommonAPI.post_chat_message(user, recipient, "yo")
+       %{conn: conn} = oauth_access(["read:chats"])
+       %{conn: conn, user: user}
+     end
+     test "returns 403", %{conn: conn, user: user} do
+       conn
+       |> get("/api/pleroma/admin/users/#{user.nickname}/chats")
+       |> json_response(403)
+     end
+   end
+   describe "GET /api/pleroma/admin/users/:nickname/chats unauthenticated" do
+     setup do
+       user = insert(:user)
+       recipient = insert(:user)
+       CommonAPI.post_chat_message(user, recipient, "yo")
+       %{conn: build_conn(), user: user}
+     end
+     test "returns 403", %{conn: conn, user: user} do
+       conn
+       |> get("/api/pleroma/admin/users/#{user.nickname}/chats")
+       |> json_response(403)
+     end
+   end
    describe "GET /api/pleroma/admin/moderation_log" do
      setup do
        moderator = insert(:user, is_moderator: true)
                 }"
  
        ObanHelpers.perform_all()
 -      assert_email_sent(Pleroma.Emails.UserEmail.account_confirmation_email(first_user))
 +
 +      Pleroma.Emails.UserEmail.account_confirmation_email(first_user)
 +      # temporary hackney fix until hackney max_connections bug is fixed
 +      # https://git.pleroma.social/pleroma/pleroma/-/issues/2101
 +      |> Swoosh.Email.put_private(:hackney_options, ssl_options: [versions: [:"tlsv1.2"]])
 +      |> assert_email_sent()
      end
    end