+ test "returns error when file system not writable", %{admin_conn: admin_conn} do
+ {:ok, %File.Stat{mode: mode}} = File.stat(@emoji_path)
+
+ try do
+ File.chmod!(@emoji_path, 0o400)
+
+ assert admin_conn
+ |> post("/api/pleroma/emoji/pack?name=test_pack")
+ |> json_response_and_validate_schema(500) == %{
+ "error" =>
+ "Unexpected error occurred while creating pack. (POSIX error: Permission denied)"
+ }
+ after
+ File.chmod!(@emoji_path, mode)
+ end
+ end
+
+ test "returns an error on deletes pack when the file system is not writable", %{
+ admin_conn: admin_conn
+ } do
+ {:ok, _pack} = Pleroma.Emoji.Pack.create("test_pack2")
+ {:ok, %File.Stat{mode: mode}} = File.stat(@emoji_path)
+
+ try do
+ File.chmod!(@emoji_path, 0o400)
+
+ assert admin_conn
+ |> delete("/api/pleroma/emoji/pack?name=test_pack")
+ |> json_response_and_validate_schema(500) == %{
+ "error" => "Couldn't delete the pack test_pack (POSIX error: Permission denied)"
+ }
+ after
+ File.chmod!(@emoji_path, mode)
+ File.rm_rf!(Path.join([@emoji_path, "test_pack2"]))
+ end
+ end
+