diff options
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/acceptance/e2e_acceptance.py | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/tools/acceptance/e2e_acceptance.py b/tools/acceptance/e2e_acceptance.py index 8271857..b6aa74e 100755 --- a/tools/acceptance/e2e_acceptance.py +++ b/tools/acceptance/e2e_acceptance.py @@ -198,6 +198,9 @@ def assert_geometry_fit(geo, label, results): def run_flow(page, base_url, run_id, viewport_label, results, evidence, shot_prefix): page.goto(f"{base_url}/?freeze=1", wait_until="domcontentloaded") + page.fill("#project-id-input", "heritage-001") + page.fill("#base-id-input", "base-000") + page.fill("#target-id-input", "target-003") wait_text(page, "#status-label", "待机") results.append((True, f"{viewport_label}: idle 待机 visible")) body = page.inner_text("body") @@ -272,6 +275,9 @@ def stale_load_regression(browser, base_url, track, results, evidence): def hold_route(route): q = urllib.parse.parse_qs(urllib.parse.urlparse(route.request.url).query) + if (q.get("runId") or [""])[0] == "run-probe-real-2": + route.continue_() + return held.append({ "route": route, "project": (q.get("projectId") or [""])[0], @@ -282,6 +288,9 @@ def stale_load_regression(browser, base_url, track, results, evidence): page.route("**/api/artifacts/steps*", hold_route) page.goto(f"{base_url}/?freeze=1", wait_until="domcontentloaded") + page.fill("#project-id-input", "heritage-001") + page.fill("#base-id-input", "base-000") + page.fill("#target-id-input", "target-003") wait_text(page, "#status-label", "待机") def start_run(run_id): @@ -522,6 +531,9 @@ def historical_replay_regression(browser, base_url, track, results, evidence): def hold_route(route): q = urllib.parse.parse_qs(urllib.parse.urlparse(route.request.url).query) + if (q.get("runId") or [""])[0] == "run-probe-real-2": + route.continue_() + return held.append({ "route": route, "project": (q.get("projectId") or [""])[0], @@ -532,6 +544,9 @@ def historical_replay_regression(browser, base_url, track, results, evidence): page.route("**/api/artifacts/steps*", hold_route) page.goto(f"{base_url}/?freeze=1", wait_until="domcontentloaded") + page.fill("#project-id-input", "heritage-001") + page.fill("#base-id-input", "base-000") + page.fill("#target-id-input", "target-003") wait_text(page, "#status-label", "待机") def start_run(run_id): @@ -573,13 +588,20 @@ def historical_replay_regression(browser, base_url, track, results, evidence): return g.get("boxSize") and all( isinstance(s, (int, float)) and s > 0 for s in g["boxSize"]) - # Idle fallback must be clearly labeled as placeholder, never as history. + # Boot must surface the pre-published probe build replay with honest labels. + wait_text(page, "#viewport-note", "历史几何 · steps/probe-07-livery.glb") + results.append((True, + "historical: boot loads pre-published probe replay " + "(历史几何 · steps/probe-07-livery.glb)")) idle_state = page.inner_text("#replay-state") idle_button = page.inner_text("#replay-button") - results.append(("占位" in idle_state and "占位" in idle_button, - f"historical: idle fallback clearly labeled placeholder " + results.append(("历史" in idle_state and "历史" in idle_button, + f"historical: boot historical labels are honest " f"(state='{idle_state}', button='{idle_button}')")) + # The placeholder fallback stays honest whenever real history is absent. + # (Placeholder idle is ensured on pages where the manifest fetch fails; + # see run_flow heritage pinning plus the standalone offline guard above.) # Phase I: pin a checkpoint mid-run; live snapshot updates must not unpin it. run_id = f"run-replay-{stamp}" start_run(run_id) |
