Add Windows Chrome side panel and scoped IDE native bridge
This commit is contained in:
1 parent
75afd01b4b
commit
fb6f57cd36
14 files changed
+1018
-1
No files matched your search
@@ -0,0 +1,44 @@
|
||||
"""The desktop and browser must see the same events, without duplicating replay."""
|
||||
from tui_gateway import event_replay, server
|
||||
|
||||
|
||||
class Viewer:
|
||||
def __init__(self, fail=False):
|
||||
self.frames = []
|
||||
self.fail = fail
|
||||
|
||||
def write(self, frame):
|
||||
if self.fail:
|
||||
raise OSError("disconnected")
|
||||
self.frames.append(frame)
|
||||
return True
|
||||
|
||||
|
||||
def test_event_reaches_both_viewers_once_and_is_recorded_once(monkeypatch):
|
||||
desktop, chrome = Viewer(), Viewer()
|
||||
monkeypatch.setattr(server, "_sessions", {"browser-test": {
|
||||
"transport": chrome, "viewers": {desktop: 1, chrome: 2},
|
||||
}})
|
||||
event_replay.reset_replay_state()
|
||||
try:
|
||||
frame = server._event_frame("message.delta", "browser-test", {"text": "İki yüzey"})
|
||||
assert server.write_json(frame)
|
||||
assert desktop.frames == chrome.frames == [frame]
|
||||
assert event_replay.latest_seq("browser-test") == 1
|
||||
assert len(event_replay.events_since("browser-test", 0)) == 1
|
||||
finally:
|
||||
event_replay.reset_replay_state()
|
||||
|
||||
|
||||
def test_closed_primary_does_not_hide_events_from_remaining_viewer(monkeypatch):
|
||||
desktop, chrome = Viewer(), Viewer(fail=True)
|
||||
monkeypatch.setattr(server, "_sessions", {"browser-test": {
|
||||
"transport": chrome, "viewers": {desktop: 1, chrome: 2},
|
||||
}})
|
||||
event_replay.reset_replay_state()
|
||||
try:
|
||||
frame = server._event_frame("approval.request", "browser-test", {"request_id": "test"})
|
||||
assert server.write_json(frame)
|
||||
assert desktop.frames == [frame]
|
||||
finally:
|
||||
event_replay.reset_replay_state()
|
||||
Reference in new issue
Block a user