summaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/tests/test_connect_never_hangs.py
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-25 11:09:12 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-25 12:07:49 +0200
commit6348698322e5bfcb80d0ef0dcd833ba4e6179640 (patch)
tree6d4f47a0a1745ef5ae912368d078cf681b9fcd19 /packages/meshbay-hub/tests/test_connect_never_hangs.py
parent71ea15a926d02437a65b8d788834c46f4e6df9a3 (diff)
downloadmeshbay-6348698322e5bfcb80d0ef0dcd833ba4e6179640.tar.gz
test(hub): read the transport wherever it is split
spa_source.transport_files() takes the classic transport*.js scripts from the hub's shell, in load order. Every test that read transport.js reads them all, the Node harnesses run them joined as one scope, the chat probe loads each, and the desktop shell must load them in order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/tests/test_connect_never_hangs.py')
-rw-r--r--packages/meshbay-hub/tests/test_connect_never_hangs.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/packages/meshbay-hub/tests/test_connect_never_hangs.py b/packages/meshbay-hub/tests/test_connect_never_hangs.py
index d6f1369..5680877 100644
--- a/packages/meshbay-hub/tests/test_connect_never_hangs.py
+++ b/packages/meshbay-hub/tests/test_connect_never_hangs.py
@@ -22,6 +22,7 @@ import re
from pathlib import Path
import pytest
+from spa_source import transport_source
STATIC = Path(__file__).resolve().parents[1] / "src" / "meshbay_hub" / "static"
TRANSPORT = STATIC / "transport.js"
@@ -33,7 +34,7 @@ pytestmark = pytest.mark.skipif(not TRANSPORT.exists(),
def _gathering_block() -> str:
"""The wait on ICE gathering, and only it."""
- source = TRANSPORT.read_text(encoding="utf-8")
+ source = transport_source()
start = source.index("iceGatheringState")
return source[max(0, start - 900):start + 700]
@@ -48,7 +49,7 @@ def test_ice_gathering_has_a_deadline():
def test_the_deadline_is_long_enough_for_a_stun_round_trip():
"""Cutting gathering off too early drops the reflexive candidate and breaks
every connection that is not on the same network."""
- source = TRANSPORT.read_text(encoding="utf-8")
+ source = transport_source()
match = re.search(r"const ICE_GATHER_TIMEOUT_MS = (\d+);", source)
assert match, "the constant is gone or was renamed"
assert 2000 <= int(match.group(1)) <= 10000
@@ -57,7 +58,7 @@ def test_the_deadline_is_long_enough_for_a_stun_round_trip():
def test_a_timed_out_gathering_still_sends_the_offer():
"""Host candidates are already gathered, which is enough on a LAN. Giving
up instead would turn a slow STUN server into a refusal to connect."""
- source = TRANSPORT.read_text(encoding="utf-8")
+ source = transport_source()
block = _gathering_block()
# The deadline resolves the promise; it does not reject it.
assert "reject" not in block.split("setTimeout", 1)[1][:300]