e2e_fix
This commit is contained in:
@@ -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 ->
|
||||||
|
|||||||
Reference in New Issue
Block a user