"""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()