diff --git a/frontend/index.html b/frontend/index.html
index a09c012..5b6c917 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -258,7 +258,7 @@ textarea { resize: vertical; min-height: 120px; }
paintEventStream(await res.json());
setEventStreamStatus('Updated ' + fmt(new Date()));
} catch (e) {
- qs('#gitea-events').innerHTML = '
Event stream unavailable.
';
+ setEventStreamStatus('Update failed · showing last activity');
}
}
diff --git a/tests/test_event_stream.py b/tests/test_event_stream.py
index 8aa8d81..9c2a8c8 100644
--- a/tests/test_event_stream.py
+++ b/tests/test_event_stream.py
@@ -28,6 +28,13 @@ def test_event_stream_reports_when_activity_was_refreshed():
assert "setEventStreamStatus('Updated ' + fmt(new Date()))" in html
+def test_event_stream_reports_refresh_failure_without_erasing_visible_events():
+ html = DASHBOARD.read_text()
+
+ assert "setEventStreamStatus('Update failed · showing last activity')" in html
+ assert "qs('#gitea-events').innerHTML = 'Event stream unavailable.
'" not in html
+
+
@pytest.mark.anyio
async def test_event_stream_returns_recent_authenticated_gitea_activity(monkeypatch):
expected = [{"type": "create", "actor": {"login": "timmy"}}]