Harden CI-sensitive integration tests
This commit is contained in:
@@ -9,6 +9,8 @@ defmodule Parrhesia.API.StreamTest do
|
||||
alias Parrhesia.Repo
|
||||
|
||||
setup do
|
||||
ensure_repo_started()
|
||||
ensure_stream_runtime_started()
|
||||
:ok = Sandbox.checkout(Repo)
|
||||
:ok
|
||||
end
|
||||
@@ -77,4 +79,24 @@ defmodule Parrhesia.API.StreamTest do
|
||||
defp recalculate_event_id(event) do
|
||||
Map.put(event, "id", EventValidator.compute_id(event))
|
||||
end
|
||||
|
||||
defp ensure_stream_runtime_started do
|
||||
if is_nil(Process.whereis(Parrhesia.API.Stream.Supervisor)) do
|
||||
case start_supervised({Parrhesia.Subscriptions.Supervisor, []}) do
|
||||
{:ok, _pid} -> :ok
|
||||
{:error, {:already_started, _pid}} -> :ok
|
||||
end
|
||||
else
|
||||
:ok
|
||||
end
|
||||
end
|
||||
|
||||
defp ensure_repo_started do
|
||||
if is_nil(Process.whereis(Repo)) do
|
||||
_ = start_supervised(Repo)
|
||||
:ok
|
||||
else
|
||||
:ok
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -157,6 +157,7 @@ defmodule Parrhesia.Sync.WorkerTest do
|
||||
worker_supervisor = unique_name("SyncWorkerSupervisor")
|
||||
supervisor_name = unique_name("SyncSupervisor")
|
||||
|
||||
supervisor_pid =
|
||||
start_supervised!(
|
||||
{Supervisor,
|
||||
name: supervisor_name,
|
||||
@@ -167,6 +168,22 @@ defmodule Parrhesia.Sync.WorkerTest do
|
||||
start_workers?: true}
|
||||
)
|
||||
|
||||
on_exit(fn ->
|
||||
ref = Process.monitor(supervisor_pid)
|
||||
|
||||
try do
|
||||
_ = GenServer.stop(supervisor_pid, :normal)
|
||||
catch
|
||||
:exit, _reason -> :ok
|
||||
end
|
||||
|
||||
receive do
|
||||
{:DOWN, ^ref, :process, ^supervisor_pid, _reason} -> :ok
|
||||
after
|
||||
1_000 -> :ok
|
||||
end
|
||||
end)
|
||||
|
||||
{manager_name, supervisor_name}
|
||||
end
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ defmodule Parrhesia.Web.ConnectionTest do
|
||||
alias Parrhesia.Web.Connection
|
||||
|
||||
setup do
|
||||
ensure_repo_started()
|
||||
ensure_stream_runtime_started()
|
||||
:ok = Sandbox.checkout(Repo)
|
||||
:ok
|
||||
end
|
||||
@@ -874,6 +876,26 @@ defmodule Parrhesia.Web.ConnectionTest do
|
||||
state
|
||||
end
|
||||
|
||||
defp ensure_stream_runtime_started do
|
||||
if is_nil(Process.whereis(Parrhesia.API.Stream.Supervisor)) do
|
||||
case start_supervised({Parrhesia.Subscriptions.Supervisor, []}) do
|
||||
{:ok, _pid} -> :ok
|
||||
{:error, {:already_started, _pid}} -> :ok
|
||||
end
|
||||
else
|
||||
:ok
|
||||
end
|
||||
end
|
||||
|
||||
defp ensure_repo_started do
|
||||
if is_nil(Process.whereis(Repo)) do
|
||||
_ = start_supervised(Repo)
|
||||
:ok
|
||||
else
|
||||
:ok
|
||||
end
|
||||
end
|
||||
|
||||
defp listener(overrides) do
|
||||
base = %{
|
||||
id: :test,
|
||||
|
||||
@@ -82,7 +82,7 @@ defmodule Parrhesia.Web.TLSE2ETest do
|
||||
fn ->
|
||||
server_cert_fingerprint(port) == TLSCerts.cert_sha256!(server_b.certfile)
|
||||
end,
|
||||
10_000
|
||||
30_000
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user