e2e_fix
This commit is contained in:
@@ -2,12 +2,14 @@ defmodule NodeSyncE2E.RelayClient do
|
||||
use WebSockex
|
||||
|
||||
def start_link(url, owner, opts \\ []) do
|
||||
WebSockex.start_link(
|
||||
url,
|
||||
__MODULE__,
|
||||
owner,
|
||||
Keyword.put(opts, :handle_initial_conn_failure, true)
|
||||
)
|
||||
ws_opts =
|
||||
opts
|
||||
|> Keyword.put_new(:handle_initial_conn_failure, true)
|
||||
|> Keyword.put_new(:async, 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
|
||||
|
||||
def send_json(pid, payload) do
|
||||
@@ -460,9 +462,14 @@ defmodule NodeSyncE2E.Runner do
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
@@ -473,8 +480,8 @@ defmodule NodeSyncE2E.Runner do
|
||||
:ok
|
||||
end
|
||||
|
||||
{:error, _reason} ->
|
||||
:ok
|
||||
{:error, reason} ->
|
||||
{:error, {:event_absence_query_failed, reason}}
|
||||
end
|
||||
end
|
||||
|
||||
@@ -572,7 +579,8 @@ defmodule NodeSyncE2E.Runner do
|
||||
[filter],
|
||||
[],
|
||||
false,
|
||||
nil
|
||||
nil,
|
||||
0
|
||||
)
|
||||
after
|
||||
RelayClient.close(client)
|
||||
@@ -588,10 +596,14 @@ defmodule NodeSyncE2E.Runner do
|
||||
filters,
|
||||
events,
|
||||
authenticated?,
|
||||
auth_event_id
|
||||
auth_event_id,
|
||||
auth_attempts
|
||||
) do
|
||||
receive do
|
||||
{:node_sync_e2e_relay_client, ^client, :frame, ["AUTH", challenge]} ->
|
||||
if auth_attempts >= 5 do
|
||||
{:error, :too_many_auth_challenges}
|
||||
else
|
||||
auth_event =
|
||||
auth_event(relay_auth_url, challenge)
|
||||
|> sign_event!(private_key)
|
||||
@@ -606,8 +618,10 @@ defmodule NodeSyncE2E.Runner do
|
||||
filters,
|
||||
events,
|
||||
authenticated?,
|
||||
auth_event["id"]
|
||||
auth_event["id"],
|
||||
auth_attempts + 1
|
||||
)
|
||||
end
|
||||
|
||||
{:node_sync_e2e_relay_client, ^client, :frame, ["OK", event_id, true, _message]}
|
||||
when event_id == auth_event_id ->
|
||||
@@ -621,7 +635,8 @@ defmodule NodeSyncE2E.Runner do
|
||||
filters,
|
||||
events,
|
||||
true,
|
||||
nil
|
||||
nil,
|
||||
auth_attempts
|
||||
)
|
||||
|
||||
{:node_sync_e2e_relay_client, ^client, :frame, ["OK", event_id, false, message]}
|
||||
@@ -637,7 +652,8 @@ defmodule NodeSyncE2E.Runner do
|
||||
filters,
|
||||
[event | events],
|
||||
authenticated?,
|
||||
auth_event_id
|
||||
auth_event_id,
|
||||
auth_attempts
|
||||
)
|
||||
|
||||
{:node_sync_e2e_relay_client, ^client, :frame, ["EOSE", ^subscription_id]} ->
|
||||
@@ -658,7 +674,8 @@ defmodule NodeSyncE2E.Runner do
|
||||
filters,
|
||||
events,
|
||||
authenticated?,
|
||||
auth_event_id
|
||||
auth_event_id,
|
||||
auth_attempts
|
||||
)
|
||||
|
||||
true ->
|
||||
|
||||
Reference in New Issue
Block a user