Upload 18 files
Browse files
tests/test_custom_ui_shell.py
CHANGED
|
@@ -40,11 +40,7 @@ def test_one_page_workspace_contains_core_sections():
|
|
| 40 |
"Runs Explorer",
|
| 41 |
"Selected run",
|
| 42 |
"Space Test",
|
| 43 |
-
|
| 44 |
-
"Raw events",
|
| 45 |
-
"Full report",
|
| 46 |
-
"Artifacts",
|
| 47 |
-
"Run storage",
|
| 48 |
]:
|
| 49 |
assert text in html
|
| 50 |
|
|
@@ -90,11 +86,12 @@ def test_frontend_calls_real_bridge_endpoints_and_keeps_run_logic():
|
|
| 90 |
|
| 91 |
def test_css_contains_one_page_responsive_layout():
|
| 92 |
css = (root() / "web" / "static" / "app.css").read_text(encoding="utf-8")
|
|
|
|
| 93 |
for snippet in [
|
| 94 |
-
".workspace-grid{display:grid;grid-template-columns:
|
| 95 |
-
".space-test-grid{display:grid;grid-template-columns:minmax(0,
|
| 96 |
"word-break:normal",
|
| 97 |
".run-row.selected",
|
| 98 |
-
"@media
|
| 99 |
]:
|
| 100 |
-
assert snippet
|
|
|
|
| 40 |
"Runs Explorer",
|
| 41 |
"Selected run",
|
| 42 |
"Space Test",
|
| 43 |
+
"Artifacts",
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
]:
|
| 45 |
assert text in html
|
| 46 |
|
|
|
|
| 86 |
|
| 87 |
def test_css_contains_one_page_responsive_layout():
|
| 88 |
css = (root() / "web" / "static" / "app.css").read_text(encoding="utf-8")
|
| 89 |
+
compact = css.replace(" ", "")
|
| 90 |
for snippet in [
|
| 91 |
+
".workspace-grid{display:grid;grid-template-columns:minmax(300px,420px)minmax(460px,1fr)minmax(300px,420px)",
|
| 92 |
+
".space-test-grid{display:grid;grid-template-columns:minmax(0,1fr)minmax(300px,450px)",
|
| 93 |
"word-break:normal",
|
| 94 |
".run-row.selected",
|
| 95 |
+
"@media(max-width:720px)",
|
| 96 |
]:
|
| 97 |
+
assert snippet.replace(" ", "") in compact
|
tests/test_pass46_ui_regressions.py
CHANGED
|
@@ -10,6 +10,7 @@ def test_selecting_run_still_does_not_force_hidden_navigation():
|
|
| 10 |
|
| 11 |
def test_mobile_css_prevents_letter_by_letter_wrapping_in_one_page_layout():
|
| 12 |
css = Path("web/static/app.css").read_text(encoding="utf-8")
|
| 13 |
-
|
| 14 |
-
assert "
|
| 15 |
-
assert "
|
|
|
|
|
|
| 10 |
|
| 11 |
def test_mobile_css_prevents_letter_by_letter_wrapping_in_one_page_layout():
|
| 12 |
css = Path("web/static/app.css").read_text(encoding="utf-8")
|
| 13 |
+
compact = css.replace(" ", "")
|
| 14 |
+
assert "word-break:normal" in compact
|
| 15 |
+
assert "@media(max-width:720px)" in compact
|
| 16 |
+
assert ".topbar,.workspace-grid,.space-test-grid,.editor-grid,.test-top-row,.two-cols,.active-meta,.selected-grid,.validation-grid{grid-template-columns:1fr}" in compact
|
tests/test_pass47_simple_spec_reset.py
CHANGED
|
@@ -13,7 +13,7 @@ def test_one_page_workspace_has_no_public_tabs_anymore():
|
|
| 13 |
def test_new_build_panel_is_left_column_and_launch_focused():
|
| 14 |
html = Path("web/index.html").read_text(encoding="utf-8")
|
| 15 |
assert 'id="newBuildCard"' in html
|
| 16 |
-
for text in ["
|
| 17 |
assert text in html
|
| 18 |
|
| 19 |
|
|
@@ -26,5 +26,5 @@ def test_runs_explorer_and_selected_run_are_integrated_on_same_page():
|
|
| 26 |
def test_space_test_panel_is_inline_not_tabbed():
|
| 27 |
html = Path("web/index.html").read_text(encoding="utf-8")
|
| 28 |
assert 'id="spaceTestSection"' in html
|
| 29 |
-
assert "
|
| 30 |
assert "Launch validation" in html
|
|
|
|
| 13 |
def test_new_build_panel_is_left_column_and_launch_focused():
|
| 14 |
html = Path("web/index.html").read_text(encoding="utf-8")
|
| 15 |
assert 'id="newBuildCard"' in html
|
| 16 |
+
for text in ["New Build", "Build private Space", "Launch result"]:
|
| 17 |
assert text in html
|
| 18 |
|
| 19 |
|
|
|
|
| 26 |
def test_space_test_panel_is_inline_not_tabbed():
|
| 27 |
html = Path("web/index.html").read_text(encoding="utf-8")
|
| 28 |
assert 'id="spaceTestSection"' in html
|
| 29 |
+
assert "Space Test" in html
|
| 30 |
assert "Launch validation" in html
|
tests/test_v50_job_links_responsive.py
CHANGED
|
@@ -52,7 +52,7 @@ def test_frontend_job_fallback_uses_bucket_owner_and_created_by():
|
|
| 52 |
|
| 53 |
def test_responsive_breakpoints_are_less_aggressive():
|
| 54 |
css = Path("web/static/app.css").read_text(encoding="utf-8")
|
| 55 |
-
assert "@media (max-width:
|
| 56 |
assert "@media (max-width: 720px)" in css
|
| 57 |
assert "@media (max-width: 1260px)" not in css
|
| 58 |
assert "@media (max-width: 860px)" not in css
|
|
|
|
| 52 |
|
| 53 |
def test_responsive_breakpoints_are_less_aggressive():
|
| 54 |
css = Path("web/static/app.css").read_text(encoding="utf-8")
|
| 55 |
+
assert "@media (max-width: 1180px)" in css
|
| 56 |
assert "@media (max-width: 720px)" in css
|
| 57 |
assert "@media (max-width: 1260px)" not in css
|
| 58 |
assert "@media (max-width: 860px)" not in css
|
tests/test_view_models.py
CHANGED
|
@@ -36,8 +36,8 @@ def test_view_model_maps_running_run_to_product_pipeline():
|
|
| 36 |
)
|
| 37 |
view = build_run_view_model("run-1", bundle, bucket_source="alice/space-factory-runs", now=datetime(2026, 6, 3, 10, 2, tzinfo=timezone.utc))
|
| 38 |
assert view["header"]["status"] == "running"
|
| 39 |
-
assert view["header"]["current_phase"] == "
|
| 40 |
-
assert [step["label"] for step in view["pipeline"]][:3] == ["
|
| 41 |
assert any(item["agent"] == "Coder Agent" for item in view["activity"])
|
| 42 |
|
| 43 |
|
|
|
|
| 36 |
)
|
| 37 |
view = build_run_view_model("run-1", bundle, bucket_source="alice/space-factory-runs", now=datetime(2026, 6, 3, 10, 2, tzinfo=timezone.utc))
|
| 38 |
assert view["header"]["status"] == "running"
|
| 39 |
+
assert view["header"]["current_phase"] == "generate_app"
|
| 40 |
+
assert [step["label"] for step in view["pipeline"]][:3] == ["Bucket ready", "Job launched", "Model analysis"]
|
| 41 |
assert any(item["agent"] == "Coder Agent" for item in view["activity"])
|
| 42 |
|
| 43 |
|