e2e_fix
Some checks failed
CI / Test (OTP 27.2 / Elixir 1.18.2) (push) Failing after 0s
CI / Test (OTP 28.4 / Elixir 1.19.4 + E2E) (push) Failing after 0s

This commit is contained in:
2026-03-19 10:20:02 +01:00
parent c6bd582068
commit 6f1777c229

View File

@@ -2,12 +2,14 @@ defmodule NodeSyncE2E.RelayClient do
use WebSockex use WebSockex
def start_link(url, owner, opts \\ []) do def start_link(url, owner, opts \\ []) do
WebSockex.start_link( ws_opts =
url, opts
__MODULE__, |> Keyword.put_new(:handle_initial_conn_failure, true)
owner, |> Keyword.put_new(:async, true)
Keyword.put(opts, :handle_initial_conn_failure, true) |> Keyword.put_new(:socket_connect_timeout, 2_000)
) |> Keyword.put_new(:socket_recv_timeout, 2_000)
WebSockex.start_link(url, __MODULE__, owner, ws_opts)
end end
def send_json(pid, payload) do def send_json(pid, payload) do
@@ -460,9 +462,14 @@ defmodule NodeSyncE2E.Runner do
end end
defp ensure_event_absent(config, node, event_id) do defp ensure_event_absent(config, node, event_id) do
broad_filter = %{"ids" => [event_id], "limit" => 1} filter = %{
"kinds" => [5001],
"#r" => [config.resource],
"ids" => [event_id],
"limit" => 1
}
case query_events(node, config.client_private_key, broad_filter) do case query_events(node, config.client_private_key, filter) do
{:ok, []} -> {:ok, []} ->
:ok :ok
@@ -473,8 +480,8 @@ defmodule NodeSyncE2E.Runner do
:ok :ok
end end
{:error, _reason} -> {:error, reason} ->
:ok {:error, {:event_absence_query_failed, reason}}
end end
end end
@@ -572,7 +579,8 @@ defmodule NodeSyncE2E.Runner do
[filter], [filter],
[], [],
false, false,
nil nil,
0
) )
after after
RelayClient.close(client) RelayClient.close(client)
@@ -588,10 +596,14 @@ defmodule NodeSyncE2E.Runner do
filters, filters,
events, events,
authenticated?, authenticated?,
auth_event_id auth_event_id,
auth_attempts
) do ) do
receive do receive do
{:node_sync_e2e_relay_client, ^client, :frame, ["AUTH", challenge]} -> {:node_sync_e2e_relay_client, ^client, :frame, ["AUTH", challenge]} ->
if auth_attempts >= 5 do
{:error, :too_many_auth_challenges}
else
auth_event = auth_event =
auth_event(relay_auth_url, challenge) auth_event(relay_auth_url, challenge)
|> sign_event!(private_key) |> sign_event!(private_key)
@@ -606,8 +618,10 @@ defmodule NodeSyncE2E.Runner do
filters, filters,
events, events,
authenticated?, authenticated?,
auth_event["id"] auth_event["id"],
auth_attempts + 1
) )
end
{:node_sync_e2e_relay_client, ^client, :frame, ["OK", event_id, true, _message]} {:node_sync_e2e_relay_client, ^client, :frame, ["OK", event_id, true, _message]}
when event_id == auth_event_id -> when event_id == auth_event_id ->
@@ -621,7 +635,8 @@ defmodule NodeSyncE2E.Runner do
filters, filters,
events, events,
true, true,
nil nil,
auth_attempts
) )
{:node_sync_e2e_relay_client, ^client, :frame, ["OK", event_id, false, message]} {:node_sync_e2e_relay_client, ^client, :frame, ["OK", event_id, false, message]}
@@ -637,7 +652,8 @@ defmodule NodeSyncE2E.Runner do
filters, filters,
[event | events], [event | events],
authenticated?, authenticated?,
auth_event_id auth_event_id,
auth_attempts
) )
{:node_sync_e2e_relay_client, ^client, :frame, ["EOSE", ^subscription_id]} -> {:node_sync_e2e_relay_client, ^client, :frame, ["EOSE", ^subscription_id]} ->
@@ -658,7 +674,8 @@ defmodule NodeSyncE2E.Runner do
filters, filters,
events, events,
authenticated?, authenticated?,
auth_event_id auth_event_id,
auth_attempts
) )
true -> true ->