Harden CI-sensitive integration tests
This commit is contained in:
@@ -9,6 +9,8 @@ defmodule Parrhesia.API.StreamTest do
|
|||||||
alias Parrhesia.Repo
|
alias Parrhesia.Repo
|
||||||
|
|
||||||
setup do
|
setup do
|
||||||
|
ensure_repo_started()
|
||||||
|
ensure_stream_runtime_started()
|
||||||
:ok = Sandbox.checkout(Repo)
|
:ok = Sandbox.checkout(Repo)
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
@@ -77,4 +79,24 @@ defmodule Parrhesia.API.StreamTest do
|
|||||||
defp recalculate_event_id(event) do
|
defp recalculate_event_id(event) do
|
||||||
Map.put(event, "id", EventValidator.compute_id(event))
|
Map.put(event, "id", EventValidator.compute_id(event))
|
||||||
end
|
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
|
end
|
||||||
|
|||||||
@@ -157,15 +157,32 @@ defmodule Parrhesia.Sync.WorkerTest do
|
|||||||
worker_supervisor = unique_name("SyncWorkerSupervisor")
|
worker_supervisor = unique_name("SyncWorkerSupervisor")
|
||||||
supervisor_name = unique_name("SyncSupervisor")
|
supervisor_name = unique_name("SyncSupervisor")
|
||||||
|
|
||||||
start_supervised!(
|
supervisor_pid =
|
||||||
{Supervisor,
|
start_supervised!(
|
||||||
name: supervisor_name,
|
{Supervisor,
|
||||||
manager: manager_name,
|
name: supervisor_name,
|
||||||
worker_registry: worker_registry,
|
manager: manager_name,
|
||||||
worker_supervisor: worker_supervisor,
|
worker_registry: worker_registry,
|
||||||
path: unique_sync_path(),
|
worker_supervisor: worker_supervisor,
|
||||||
start_workers?: true}
|
path: unique_sync_path(),
|
||||||
)
|
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}
|
{manager_name, supervisor_name}
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ defmodule Parrhesia.Web.ConnectionTest do
|
|||||||
alias Parrhesia.Web.Connection
|
alias Parrhesia.Web.Connection
|
||||||
|
|
||||||
setup do
|
setup do
|
||||||
|
ensure_repo_started()
|
||||||
|
ensure_stream_runtime_started()
|
||||||
:ok = Sandbox.checkout(Repo)
|
:ok = Sandbox.checkout(Repo)
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
@@ -874,6 +876,26 @@ defmodule Parrhesia.Web.ConnectionTest do
|
|||||||
state
|
state
|
||||||
end
|
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
|
defp listener(overrides) do
|
||||||
base = %{
|
base = %{
|
||||||
id: :test,
|
id: :test,
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ defmodule Parrhesia.Web.TLSE2ETest do
|
|||||||
fn ->
|
fn ->
|
||||||
server_cert_fingerprint(port) == TLSCerts.cert_sha256!(server_b.certfile)
|
server_cert_fingerprint(port) == TLSCerts.cert_sha256!(server_b.certfile)
|
||||||
end,
|
end,
|
||||||
10_000
|
30_000
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user