diff options
| author | Sergey Suprunenko <suprunenko.s@gmail.com> | 2019-08-19 16:10:00 +0000 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2019-08-19 16:10:00 +0000 | 
| commit | 75a5dd41ee4a1c196487f4cf2759a4d63bc393ef (patch) | |
| tree | 948ec474f599236f03186fd12ab30a489fe67cec /test | |
| parent | 222ac3bcbebe496ba8f0363adea40ef4fcf26886 (diff) | |
| download | pleroma-75a5dd41ee4a1c196487f4cf2759a4d63bc393ef.tar.gz pleroma-75a5dd41ee4a1c196487f4cf2759a4d63bc393ef.zip | |
Add more tests for Database tasks and DigestEmailWorker
Diffstat (limited to 'test')
| -rw-r--r-- | test/tasks/database_test.exs | 47 | ||||
| -rw-r--r-- | test/tasks/digest_test.exs (renamed from test/mix/tasks/pleroma.digest_test.exs) | 0 | ||||
| -rw-r--r-- | test/web/digest_email_worker_test.exs | 31 | 
3 files changed, 78 insertions, 0 deletions
| diff --git a/test/tasks/database_test.exs b/test/tasks/database_test.exs index a8f25f500..a9925c361 100644 --- a/test/tasks/database_test.exs +++ b/test/tasks/database_test.exs @@ -3,6 +3,7 @@  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Mix.Tasks.Pleroma.DatabaseTest do +  alias Pleroma.Activity    alias Pleroma.Object    alias Pleroma.Repo    alias Pleroma.User @@ -22,6 +23,52 @@ defmodule Mix.Tasks.Pleroma.DatabaseTest do      :ok    end +  describe "running remove_embedded_objects" do +    test "it replaces objects with references" do +      user = insert(:user) +      {:ok, activity} = CommonAPI.post(user, %{"status" => "test"}) +      new_data = Map.put(activity.data, "object", activity.object.data) + +      {:ok, activity} = +        activity +        |> Activity.change(%{data: new_data}) +        |> Repo.update() + +      assert is_map(activity.data["object"]) + +      Mix.Tasks.Pleroma.Database.run(["remove_embedded_objects"]) + +      activity = Activity.get_by_id_with_object(activity.id) +      assert is_binary(activity.data["object"]) +    end +  end + +  describe "prune_objects" do +    test "it prunes old objects from the database" do +      insert(:note) +      deadline = Pleroma.Config.get([:instance, :remote_post_retention_days]) + 1 + +      date = +        Timex.now() +        |> Timex.shift(days: -deadline) +        |> Timex.to_naive_datetime() +        |> NaiveDateTime.truncate(:second) + +      %{id: id} = +        :note +        |> insert() +        |> Ecto.Changeset.change(%{inserted_at: date}) +        |> Repo.update!() + +      assert length(Repo.all(Object)) == 2 + +      Mix.Tasks.Pleroma.Database.run(["prune_objects"]) + +      assert length(Repo.all(Object)) == 1 +      refute Object.get_by_id(id) +    end +  end +    describe "running update_users_following_followers_counts" do      test "following and followers count are updated" do        [user, user2] = insert_pair(:user) diff --git a/test/mix/tasks/pleroma.digest_test.exs b/test/tasks/digest_test.exs index 595f64ed7..595f64ed7 100644 --- a/test/mix/tasks/pleroma.digest_test.exs +++ b/test/tasks/digest_test.exs diff --git a/test/web/digest_email_worker_test.exs b/test/web/digest_email_worker_test.exs new file mode 100644 index 000000000..15002330f --- /dev/null +++ b/test/web/digest_email_worker_test.exs @@ -0,0 +1,31 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.DigestEmailWorkerTest do +  use Pleroma.DataCase +  import Pleroma.Factory + +  alias Pleroma.DigestEmailWorker +  alias Pleroma.User +  alias Pleroma.Web.CommonAPI + +  test "it sends digest emails" do +    user = insert(:user) + +    date = +      Timex.now() +      |> Timex.shift(days: -10) +      |> Timex.to_naive_datetime() + +    user2 = insert(:user, last_digest_emailed_at: date) +    User.switch_email_notifications(user2, "digest", true) +    CommonAPI.post(user, %{"status" => "hey @#{user2.nickname}!"}) + +    DigestEmailWorker.perform() + +    assert_received {:email, email} +    assert email.to == [{user2.name, user2.email}] +    assert email.subject == "Your digest from #{Pleroma.Config.get(:instance)[:name]}" +  end +end | 
