aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/tests/test_api_peers.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node/tests/test_api_peers.py')
-rw-r--r--packages/meshbay-node/tests/test_api_peers.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/packages/meshbay-node/tests/test_api_peers.py b/packages/meshbay-node/tests/test_api_peers.py
new file mode 100644
index 0000000..420ccba
--- /dev/null
+++ b/packages/meshbay-node/tests/test_api_peers.py
@@ -0,0 +1,31 @@
+"""
+The Node page's Peers tab: one row per live session, from the loopback API.
+
+`_get_remote_ip` moved out of `webrtc_server.py` and the endpoint's import,
+inside the function, went on naming the old place. Nothing imports a function
+body until it runs, so the tab answered 500 and nothing else noticed.
+"""
+
+from types import SimpleNamespace
+
+from fastapi.testclient import TestClient
+from meshbay_node.ui.app import create_ui_app
+
+
+def test_the_peers_tab_lists_a_live_session():
+ session = SimpleNamespace(
+ _user_id="u-bob", _group_id="g" * 32, _username="bob",
+ # No address learnt at the handshake: the endpoint asks the ICE
+ # transport, which is the line that broke.
+ _remote_ip="",
+ _pc=SimpleNamespace(sctp=None, connectionState="connected"))
+ state = {"status": "running",
+ "webrtc": SimpleNamespace(_sessions={"p1": session})}
+
+ resp = TestClient(create_ui_app(state)).get("/api/peers")
+
+ assert resp.status_code == 200, resp.text
+ assert resp.json() == {"peers": [{
+ "peer_id": "p1", "user_id": "u-bob", "username": "bob",
+ "group_id": "g" * 32, "group_name": "", "remote_ip": "",
+ "state": "connected"}]}