Update test for RenameInstanceChat migration
authorRoman Chvanikov <chvanikoff@pm.me>
Fri, 7 Aug 2020 09:18:55 +0000 (12:18 +0300)
committerMark Felder <feld@feld.me>
Tue, 1 Jun 2021 16:49:47 +0000 (11:49 -0500)
test/migrations/20200806175913_rename_instance_chat_test.exs

index 66341bd848d9b2cb45dd68e2da43849bc5c7a84f..acd45600cf4071dce2f40590bdf8d9f8787e11db 100644 (file)
@@ -8,14 +8,45 @@ defmodule Pleroma.Repo.Migrations.RenameInstanceChatTest do
   setup do: clear_config([:chat])
   setup_all do: require_migration("20200806175913_rename_instance_chat")
 
-  test "up/0 migrates chat settings to shout", %{migration: migration} do
-    insert(:config, group: :pleroma, key: :instance, value: ["chat_limit: 6000"])
-    insert(:config, group: :pleroma, key: :chat, value: ["enabled: true"])
+  describe "up/0" do
+    test "migrates chat settings to shout", %{migration: migration} do
+      insert(:config, group: :pleroma, key: :instance, value: [chat_limit: 6000])
+      insert(:config, group: :pleroma, key: :chat, value: [enabled: true])
 
-    migration.up()
+      assert migration.up() == :ok
 
-    assert nil == ConfigDB.get_by_params(%{group: :pleroma, key: :chat})
+      assert ConfigDB.get_by_params(%{group: :pleroma, key: :chat}) == nil
+      assert ConfigDB.get_by_params(%{group: :pleroma, key: :instance}) == nil
 
-    assert %{value: [limit: 6000, enabled: true]} == ConfigDB.get_by_params(%{group: :pleroma, key: :shout})
+      assert ConfigDB.get_by_params(%{group: :pleroma, key: :shout}).value == [
+               limit: 6000,
+               enabled: true
+             ]
+    end
+
+    test "does nothing when chat settings are not set", %{migration: migration} do
+      assert migration.up() == :noop
+      assert ConfigDB.get_by_params(%{group: :pleroma, key: :chat}) == nil
+      assert ConfigDB.get_by_params(%{group: :pleroma, key: :shout}) == nil
+    end
+  end
+
+  describe "down/0" do
+    test "migrates shout settings back to instance and chat", %{migration: migration} do
+      insert(:config, group: :pleroma, key: :shout, value: [limit: 42, enabled: true])
+
+      assert migration.down() == :ok
+
+      assert ConfigDB.get_by_params(%{group: :pleroma, key: :chat}).value == [enabled: true]
+      assert ConfigDB.get_by_params(%{group: :pleroma, key: :instance}).value == [chat_limit: 42]
+      assert ConfigDB.get_by_params(%{group: :pleroma, key: :shout}) == nil
+    end
+
+    test "does nothing when shout settings are not set", %{migration: migration} do
+      assert migration.down() == :noop
+      assert ConfigDB.get_by_params(%{group: :pleroma, key: :chat}) == nil
+      assert ConfigDB.get_by_params(%{group: :pleroma, key: :instance}) == nil
+      assert ConfigDB.get_by_params(%{group: :pleroma, key: :shout}) == nil
+    end
   end
 end