Merge remote-tracking branch 'remotes/origin/develop' into feature/object-hashtags...
[akkoma] / test / support / helpers.ex
index 7d729541dc3432ec27dc83e8448050cd508a2c74..15e8cbd9d51aeee9cdb289d3e9e012566daa55dd 100644 (file)
@@ -17,16 +17,16 @@ defmodule Pleroma.Tests.Helpers do
 
   defmacro clear_config(config_path, do: yield) do
     quote do
-      initial_setting = Config.get(unquote(config_path), :__clear_config_absent__)
+      initial_setting = Config.fetch(unquote(config_path))
       unquote(yield)
 
       on_exit(fn ->
         case initial_setting do
-          :__clear_config_absent__ ->
+          :error ->
             Config.delete(unquote(config_path))
 
-          _ ->
-            Config.put(unquote(config_path), initial_setting)
+          {:ok, value} ->
+            Config.put(unquote(config_path), value)
         end
       end)
 
@@ -55,6 +55,14 @@ defmodule Pleroma.Tests.Helpers do
           clear_config: 2
         ]
 
+      def time_travel(entity, seconds) do
+        new_time = NaiveDateTime.add(entity.inserted_at, seconds)
+
+        entity
+        |> Ecto.Changeset.change(%{inserted_at: new_time, updated_at: new_time})
+        |> Pleroma.Repo.update()
+      end
+
       def to_datetime(%NaiveDateTime{} = naive_datetime) do
         naive_datetime
         |> DateTime.from_naive!("Etc/UTC")
@@ -85,8 +93,8 @@ defmodule Pleroma.Tests.Helpers do
         assigns = Map.new(assigns)
 
         view.render(template, assigns)
-        |> Poison.encode!()
-        |> Poison.decode!()
+        |> Jason.encode!()
+        |> Jason.decode!()
       end
 
       def stringify_keys(nil), do: nil