Add HTML5 setup SSE updates
CI / python (push) Has been cancelled
CI / rust (push) Has been cancelled

This commit is contained in:
2026-05-17 02:51:17 +03:00
parent 8a1c0da0ea
commit 65c82c4fed
3 changed files with 61 additions and 5 deletions
+19
View File
@@ -533,6 +533,11 @@ def test_html5_project_setup_renders_server_fragments():
assert "HTML5 Setup Demo" in setup.text
assert "data-html5-settings-panel" in setup.text
assert "data-html5-setup-summary" in setup.text
assert 'hx-ext="sse"' in setup.text
assert f'sse-connect="/html5/projects/{project_id}/setup/events"' in setup.text
assert 'sse-swap="setup-summary"' in setup.text
assert 'sse-swap="setup-import-job"' in setup.text
assert 'hx-trigger="every 5s"' not in setup.text
assert f'hx-get="/html5/projects/{project_id}/setup/summary"' in setup.text
assert f'hx-post="/html5/projects/{project_id}/setup/settings"' in setup.text
assert f'hx-post="/html5/projects/{project_id}/setup/source"' in setup.text
@@ -582,6 +587,8 @@ def test_html5_project_setup_renders_server_fragments():
assert "data-html5-import-job" in import_job.text
assert "SERVER_IMPORT" not in import_job.text
assert "hx-get" in import_job.text
assert 'sse-swap="setup-import-job"' in import_job.text
assert 'hx-trigger="every 2s"' not in import_job.text
assert "<html" not in import_job.text
jobs = client.get("/operations/jobs", params={"project_id": project_id, "kind": "SERVER_IMPORT"})
@@ -591,6 +598,8 @@ def test_html5_project_setup_renders_server_fragments():
assert job_fragment.status_code == 200
assert "data-html5-import-job" in job_fragment.text
assert job_id in job_fragment.text
assert 'sse-swap="setup-import-job"' in job_fragment.text
assert 'hx-trigger="every 2s"' not in job_fragment.text
assert "<html" not in job_fragment.text
html5_import = client.post(f"/html5/projects/{project_id}/setup/import")
@@ -611,8 +620,18 @@ def test_html5_project_setup_renders_server_fragments():
assert "data-html5-setup-summary" in summary.text
assert "INDEXED" in summary.text
assert "mock_indexed" in summary.text
assert 'sse-swap="setup-summary"' in summary.text
assert 'hx-trigger="every 5s"' not in summary.text
assert "<html" not in summary.text
with client.stream("GET", f"/html5/projects/{project_id}/setup/events?once=1") as events:
first_chunk = next(events.iter_text())
assert "event: setup-summary" in first_chunk
assert "event: setup-import-job" in first_chunk
assert "data-html5-setup-summary" in first_chunk
assert "data-html5-import-job" in first_chunk
assert project_id in first_chunk
def test_html5_operations_renders_job_monitor_fragments():
client = TestClient(app)