Merge branch 'cleanup-activity' into 'develop'
authorlain <lain@soykaf.club>
Fri, 13 Sep 2019 14:48:00 +0000 (14:48 +0000)
committerlain <lain@soykaf.club>
Fri, 13 Sep 2019 14:48:00 +0000 (14:48 +0000)
Cleanup `Pleroma.Activity` and add more tests

See merge request pleroma/pleroma!1623

1  2 
lib/pleroma/user.ex
test/user_test.exs

diff --combined lib/pleroma/user.ex
index 1f6a75d037b8ba04741febb07c18486a82b3a7fc,ceca11def55d56182481822e3b4bbe517a3eef82..5e10ac25fdebbafea95fd58fde2380aa34305e66
@@@ -1219,7 -1219,7 +1219,7 @@@ defmodule Pleroma.User d
  
    def delete_user_activities(%User{ap_id: ap_id} = user) do
      ap_id
-     |> Activity.query_by_actor()
+     |> Activity.Queries.by_actor()
      |> RepoStreamer.chunk_stream(50)
      |> Stream.each(fn activities ->
        Enum.each(activities, &delete_activity(&1))
    def is_internal_user?(%User{nickname: nil}), do: true
    def is_internal_user?(%User{local: true, nickname: "internal." <> _}), do: true
    def is_internal_user?(_), do: false
 +
 +  def change_email(user, email) do
 +    user
 +    |> cast(%{email: email}, [:email])
 +    |> validate_required([:email])
 +    |> unique_constraint(:email)
 +    |> validate_format(:email, @email_regex)
 +    |> update_and_set_cache()
 +  end
  end
diff --combined test/user_test.exs
index ed8cdbe312e0f971fb8bebcbd3d4777412a20679,206258fee37a9ad7d3c2b585478eeb10d70cb4ad..05b158025f3a165f886ebb3bb62ab2606363a929
@@@ -1081,7 -1081,7 +1081,7 @@@ defmodule Pleroma.UserTest d
  
        user_activities =
          user.ap_id
-         |> Activity.query_by_actor()
+         |> Activity.Queries.by_actor()
          |> Repo.all()
          |> Enum.map(fn act -> act.data["type"] end)
  
        assert User.user_info(other_user).following_count == 152
      end
    end
 +
 +  describe "change_email/2" do
 +    setup do
 +      [user: insert(:user)]
 +    end
 +
 +    test "blank email returns error", %{user: user} do
 +      assert {:error, %{errors: [email: {"can't be blank", _}]}} = User.change_email(user, "")
 +      assert {:error, %{errors: [email: {"can't be blank", _}]}} = User.change_email(user, nil)
 +    end
 +
 +    test "non unique email returns error", %{user: user} do
 +      %{email: email} = insert(:user)
 +
 +      assert {:error, %{errors: [email: {"has already been taken", _}]}} =
 +               User.change_email(user, email)
 +    end
 +
 +    test "invalid email returns error", %{user: user} do
 +      assert {:error, %{errors: [email: {"has invalid format", _}]}} =
 +               User.change_email(user, "cofe")
 +    end
 +
 +    test "changes email", %{user: user} do
 +      assert {:ok, %User{email: "cofe@cofe.party"}} = User.change_email(user, "cofe@cofe.party")
 +    end
 +  end
  end