mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2024-06-02 13:10:41 +00:00
61 lines
1.7 KiB
Elixir
61 lines
1.7 KiB
Elixir
defmodule Mix.Tasks.Pleroma.FrontendTest do
|
|
use ExUnit.Case
|
|
|
|
import Tesla.Mock
|
|
|
|
@path Pleroma.Config.get([:instance, :frontends_dir])
|
|
|
|
setup do
|
|
Mix.shell(Mix.Shell.Process)
|
|
|
|
mock(fn
|
|
%{
|
|
method: :get,
|
|
url:
|
|
"https://git.pleroma.social/pleroma/pleroma-fe/-/jobs/artifacts/master/download?job=build"
|
|
} ->
|
|
%Tesla.Env{status: 200, body: File.read!("test/instance_static/dist.zip")}
|
|
|
|
%{
|
|
method: :get,
|
|
url:
|
|
"https://git.pleroma.social/pleroma/pleroma-fe/-/jobs/artifacts/develop/download?job=build"
|
|
} ->
|
|
%Tesla.Env{status: 200, body: File.read!("test/instance_static/dist.zip")}
|
|
end)
|
|
|
|
on_exit(fn ->
|
|
Mix.shell(Mix.Shell.IO)
|
|
{:ok, _} = File.rm_rf(@path)
|
|
end)
|
|
|
|
:ok
|
|
end
|
|
|
|
test "downloads pleroma-fe and master by default" do
|
|
Mix.Tasks.Pleroma.Frontend.run(["download"])
|
|
|
|
@path |> Path.expand() |> Path.join("pleroma-fe") |> check_assertions("master")
|
|
end
|
|
|
|
test "download special fe with reference" do
|
|
ref = "develop"
|
|
Mix.Tasks.Pleroma.Frontend.run(["download", "-r", ref])
|
|
|
|
@path |> Path.expand() |> Path.join("pleroma-fe") |> check_assertions(ref)
|
|
end
|
|
|
|
defp check_assertions(path, ref) do
|
|
assert_receive {:mix_shell, :info, [message]}
|
|
assert message == "Downloading reference #{ref}"
|
|
assert_receive {:mix_shell, :info, [message]}
|
|
assert message == "Cleaning #{path}"
|
|
assert_receive {:mix_shell, :info, [message]}
|
|
assert message == "Writing to #{path}"
|
|
assert_receive {:mix_shell, :info, ["Successfully downloaded and unpacked the frontend"]}
|
|
assert File.exists?(path <> "/1.png")
|
|
assert File.exists?(path <> "/2.css")
|
|
assert File.exists?(path <> "/3.js")
|
|
end
|
|
end
|