forked from AkkomaGang/akkoma
fix tests
This commit is contained in:
parent
36ec604521
commit
e1d25bad0c
2 changed files with 27 additions and 28 deletions
|
@ -62,10 +62,9 @@ def show(opts) do
|
||||||
@spec delete(String.t()) ::
|
@spec delete(String.t()) ::
|
||||||
{:ok, [binary()]} | {:error, File.posix(), binary()} | {:error, :empty_values}
|
{:ok, [binary()]} | {:error, File.posix(), binary()} | {:error, :empty_values}
|
||||||
def delete(name) do
|
def delete(name) do
|
||||||
with :ok <- validate_not_empty([name]) do
|
with :ok <- validate_not_empty([name]),
|
||||||
emoji_path()
|
pack_path <- Path.join(emoji_path(), name) do
|
||||||
|> Path.join(name)
|
File.rm_rf(pack_path)
|
||||||
|> File.rm_rf()
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
use Pleroma.Web.ConnCase, async: false
|
use Pleroma.Web.ConnCase, async: false
|
||||||
|
|
||||||
|
import Mock
|
||||||
import Tesla.Mock
|
import Tesla.Mock
|
||||||
import Pleroma.Factory
|
import Pleroma.Factory
|
||||||
|
|
||||||
|
@ -366,11 +367,9 @@ test "other error", %{admin_conn: admin_conn} do
|
||||||
end
|
end
|
||||||
|
|
||||||
test "returns error when file system not writable", %{admin_conn: conn} = ctx do
|
test "returns error when file system not writable", %{admin_conn: conn} = ctx do
|
||||||
{:ok, %File.Stat{mode: mode}} = File.stat(@emoji_path)
|
with_mocks([
|
||||||
|
{File, [:passthrough], [stat: fn _ -> {:error, :eacces} end]}
|
||||||
try do
|
]) do
|
||||||
File.chmod!(@emoji_path, 0o400)
|
|
||||||
|
|
||||||
assert conn
|
assert conn
|
||||||
|> put_req_header("content-type", "multipart/form-data")
|
|> put_req_header("content-type", "multipart/form-data")
|
||||||
|> patch(
|
|> patch(
|
||||||
|
@ -378,8 +377,6 @@ test "returns error when file system not writable", %{admin_conn: conn} = ctx do
|
||||||
%{"metadata" => ctx[:new_data]}
|
%{"metadata" => ctx[:new_data]}
|
||||||
)
|
)
|
||||||
|> json_response_and_validate_schema(500)
|
|> json_response_and_validate_schema(500)
|
||||||
after
|
|
||||||
File.chmod!(@emoji_path, mode)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -442,40 +439,43 @@ test "when the fallback source doesn't have all the files", ctx do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "POST/DELETE /api/pleroma/emoji/pack?name=:name" do
|
describe "POST/DELETE /api/pleroma/emoji/pack?name=:name" do
|
||||||
test "returns error when file system not writable", %{admin_conn: admin_conn} do
|
test "returns an error on creates pack when file system not writable", %{
|
||||||
{:ok, %File.Stat{mode: mode}} = File.stat(@emoji_path)
|
admin_conn: admin_conn
|
||||||
|
} do
|
||||||
try do
|
path_pack = Path.join(@emoji_path, "test_pack")
|
||||||
File.chmod!(@emoji_path, 0o400)
|
|
||||||
|
|
||||||
|
with_mocks([
|
||||||
|
{File, [:passthrough], [mkdir: fn ^path_pack -> {:error, :eacces} end]}
|
||||||
|
]) do
|
||||||
assert admin_conn
|
assert admin_conn
|
||||||
|> post("/api/pleroma/emoji/pack?name=test_pack")
|
|> post("/api/pleroma/emoji/pack?name=test_pack")
|
||||||
|> json_response_and_validate_schema(500) == %{
|
|> json_response_and_validate_schema(500) == %{
|
||||||
"error" =>
|
"error" =>
|
||||||
"Unexpected error occurred while creating pack. (POSIX error: Permission denied)"
|
"Unexpected error occurred while creating pack. (POSIX error: Permission denied)"
|
||||||
}
|
}
|
||||||
after
|
|
||||||
File.chmod!(@emoji_path, mode)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
test "returns an error on deletes pack when the file system is not writable", %{
|
test "returns an error on deletes pack when the file system is not writable", %{
|
||||||
admin_conn: admin_conn
|
admin_conn: admin_conn
|
||||||
} do
|
} do
|
||||||
{:ok, _pack} = Pleroma.Emoji.Pack.create("test_pack2")
|
path_pack = Path.join(@emoji_path, "test_emoji_pack")
|
||||||
{:ok, %File.Stat{mode: mode}} = File.stat(@emoji_path)
|
|
||||||
|
|
||||||
try do
|
try do
|
||||||
File.chmod!(@emoji_path, 0o400)
|
{:ok, _pack} = Pleroma.Emoji.Pack.create("test_emoji_pack")
|
||||||
|
|
||||||
assert admin_conn
|
with_mocks([
|
||||||
|> delete("/api/pleroma/emoji/pack?name=test_pack")
|
{File, [:passthrough], [rm_rf: fn ^path_pack -> {:error, :eacces, path_pack} end]}
|
||||||
|> json_response_and_validate_schema(500) == %{
|
]) do
|
||||||
"error" => "Couldn't delete the pack test_pack (POSIX error: Permission denied)"
|
assert admin_conn
|
||||||
}
|
|> delete("/api/pleroma/emoji/pack?name=test_emoji_pack")
|
||||||
|
|> json_response_and_validate_schema(500) == %{
|
||||||
|
"error" =>
|
||||||
|
"Couldn't delete the pack test_emoji_pack (POSIX error: Permission denied)"
|
||||||
|
}
|
||||||
|
end
|
||||||
after
|
after
|
||||||
File.chmod!(@emoji_path, mode)
|
File.rm_rf(path_pack)
|
||||||
File.rm_rf!(Path.join([@emoji_path, "test_pack2"]))
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue