diff options
| author | Maksim Pechnikov <parallel588@gmail.com> | 2019-12-03 21:30:10 +0300 | 
|---|---|---|
| committer | Maksim Pechnikov <parallel588@gmail.com> | 2019-12-04 09:12:17 +0300 | 
| commit | 652cc6ba4b7a0494cc96ef4a9bfcaa3b5e5be60e (patch) | |
| tree | 2d4215fc1e0e9f1647a77c213050e9c37a862d5f /test | |
| parent | b7c449118bc09ab36610e85292d153ace67c2b89 (diff) | |
| download | pleroma-652cc6ba4b7a0494cc96ef4a9bfcaa3b5e5be60e.tar.gz pleroma-652cc6ba4b7a0494cc96ef4a9bfcaa3b5e5be60e.zip | |
updated ScheduledActivity
Diffstat (limited to 'test')
| -rw-r--r-- | test/scheduled_activity_test.exs | 6 | ||||
| -rw-r--r-- | test/support/helpers.ex | 6 | ||||
| -rw-r--r-- | test/web/mastodon_api/controllers/scheduled_activity_controller_test.exs | 53 | ||||
| -rw-r--r-- | test/workers/cron/scheduled_activity_worker_test.exs | 37 | 
4 files changed, 61 insertions, 41 deletions
| diff --git a/test/scheduled_activity_test.exs b/test/scheduled_activity_test.exs index d3d05745f..663cfdd34 100644 --- a/test/scheduled_activity_test.exs +++ b/test/scheduled_activity_test.exs @@ -26,6 +26,7 @@ defmodule Pleroma.ScheduledActivityTest do        attrs = %{params: %{}, scheduled_at: today}        {:ok, _} = ScheduledActivity.create(user, attrs)        {:ok, _} = ScheduledActivity.create(user, attrs) +        {:error, changeset} = ScheduledActivity.create(user, attrs)        assert changeset.errors == [scheduled_at: {"daily limit exceeded", []}]      end @@ -83,7 +84,10 @@ defmodule Pleroma.ScheduledActivityTest do          params: %{status: "hi"}        ) -    Pleroma.Workers.Cron.ScheduledActivityWorker.perform(:opts, :pid) +    Pleroma.Workers.ScheduledActivityWorker.perform( +      %{"activity_id" => scheduled_activity.id}, +      :pid +    )      refute Repo.get(ScheduledActivity, scheduled_activity.id)      activity = Repo.all(Pleroma.Activity) |> Enum.find(&(&1.actor == user.ap_id)) diff --git a/test/support/helpers.ex b/test/support/helpers.ex index ce39dd9d8..ec556a916 100644 --- a/test/support/helpers.ex +++ b/test/support/helpers.ex @@ -53,6 +53,12 @@ defmodule Pleroma.Tests.Helpers do            clear_config_all: 2          ] +      def to_datetime(naive_datetime) do +        naive_datetime +        |> DateTime.from_naive!("Etc/UTC") +        |> DateTime.truncate(:second) +      end +        def collect_ids(collection) do          collection          |> Enum.map(& &1.id) diff --git a/test/web/mastodon_api/controllers/scheduled_activity_controller_test.exs b/test/web/mastodon_api/controllers/scheduled_activity_controller_test.exs index ae5fee2bc..5f3a376be 100644 --- a/test/web/mastodon_api/controllers/scheduled_activity_controller_test.exs +++ b/test/web/mastodon_api/controllers/scheduled_activity_controller_test.exs @@ -9,6 +9,7 @@ defmodule Pleroma.Web.MastodonAPI.ScheduledActivityControllerTest do    alias Pleroma.ScheduledActivity    import Pleroma.Factory +  import Ecto.Query    test "shows scheduled activities", %{conn: conn} do      user = insert(:user) @@ -68,7 +69,30 @@ defmodule Pleroma.Web.MastodonAPI.ScheduledActivityControllerTest do    test "updates a scheduled activity", %{conn: conn} do      user = insert(:user) -    scheduled_activity = insert(:scheduled_activity, user: user) + +    scheduled_at = +      NaiveDateTime.add( +        NaiveDateTime.utc_now(), +        :timer.minutes(60), +        :millisecond +      ) + +    {:ok, scheduled_activity} = +      ScheduledActivity.create( +        user, +        %{ +          scheduled_at: scheduled_at, +          params: build(:note).data +        } +      ) + +    scheduled_activity_job = +      Repo.one(from(j in Oban.Job, where: j.queue == "scheduled_activities")) + +    assert scheduled_activity_job.args == %{"activity_id" => scheduled_activity.id} + +    assert DateTime.truncate(scheduled_activity_job.scheduled_at, :second) == +             to_datetime(scheduled_at)      new_scheduled_at =        NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(120), :millisecond) @@ -82,6 +106,10 @@ defmodule Pleroma.Web.MastodonAPI.ScheduledActivityControllerTest do      assert %{"scheduled_at" => expected_scheduled_at} = json_response(res_conn, 200)      assert expected_scheduled_at == Pleroma.Web.CommonAPI.Utils.to_masto_date(new_scheduled_at) +    scheduled_activity_job = refresh_record(scheduled_activity_job) + +    assert DateTime.truncate(scheduled_activity_job.scheduled_at, :second) == +             to_datetime(new_scheduled_at)      res_conn =        conn @@ -93,7 +121,25 @@ defmodule Pleroma.Web.MastodonAPI.ScheduledActivityControllerTest do    test "deletes a scheduled activity", %{conn: conn} do      user = insert(:user) -    scheduled_activity = insert(:scheduled_activity, user: user) + +    {:ok, scheduled_activity} = +      ScheduledActivity.create( +        user, +        %{ +          scheduled_at: +            NaiveDateTime.add( +              NaiveDateTime.utc_now(), +              :timer.minutes(60), +              :millisecond +            ), +          params: build(:note).data +        } +      ) + +    scheduled_activity_job = +      Repo.one(from(j in Oban.Job, where: j.queue == "scheduled_activities")) + +    assert scheduled_activity_job.args == %{"activity_id" => scheduled_activity.id}      res_conn =        conn @@ -101,7 +147,8 @@ defmodule Pleroma.Web.MastodonAPI.ScheduledActivityControllerTest do        |> delete("/api/v1/scheduled_statuses/#{scheduled_activity.id}")      assert %{} = json_response(res_conn, 200) -    assert nil == Repo.get(ScheduledActivity, scheduled_activity.id) +    refute Repo.get(ScheduledActivity, scheduled_activity.id) +    refute Repo.get(Oban.Job, scheduled_activity_job.id)      res_conn =        conn diff --git a/test/workers/cron/scheduled_activity_worker_test.exs b/test/workers/cron/scheduled_activity_worker_test.exs deleted file mode 100644 index 6f17d6f6c..000000000 --- a/test/workers/cron/scheduled_activity_worker_test.exs +++ /dev/null @@ -1,37 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Workers.Cron.ScheduledActivityWorkerTest do -  use Pleroma.DataCase -  alias Pleroma.ScheduledActivity -  import Pleroma.Factory - -  clear_config([ScheduledActivity, :enabled]) - -  test "creates a status from the scheduled activity" do -    Pleroma.Config.put([ScheduledActivity, :enabled], true) -    user = insert(:user) - -    naive_datetime = -      NaiveDateTime.add( -        NaiveDateTime.utc_now(), -        -:timer.minutes(2), -        :millisecond -      ) - -    scheduled_activity = -      insert( -        :scheduled_activity, -        scheduled_at: naive_datetime, -        user: user, -        params: %{status: "hi"} -      ) - -    Pleroma.Workers.Cron.ScheduledActivityWorker.perform(:opts, :pid) - -    refute Repo.get(ScheduledActivity, scheduled_activity.id) -    activity = Repo.all(Pleroma.Activity) |> Enum.find(&(&1.actor == user.ap_id)) -    assert Pleroma.Object.normalize(activity).data["content"] == "hi" -  end -end | 
