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