E2E harness fixes to get all three modes (demo/cloud/local) passing: - conftest.py: use ctx.add_cookies() for cloud auth instead of ctx.route() or set_extra_http_headers(). Playwright's route() only intercepts HTTP; set_extra_http_headers() explicitly excludes WebSocket handshakes. Streamlit reads st.context.headers from the WebSocket upgrade, so cookies are the only vehicle that reaches it without a reverse proxy. - cloud_session.py: fall back to Cookie header when X-CF-Session is absent — supports direct access (E2E tests, dev without Caddy). In production Caddy sets X-CF-Session; in tests the cf_session cookie is set on the browser context and arrives in the Cookie header. - modes/cloud.py: add /peregrine base URL path (STREAMLIT_SERVER_BASE_URL_PATH=peregrine) - modes/local.py: correct port from 8502 → 8501 and add /peregrine path All three modes now pass smoke + interaction tests clean.
17 lines
520 B
Python
17 lines
520 B
Python
"""Local mode config — port 8502, full features, no auth."""
|
|
from pathlib import Path
|
|
from tests.e2e.models import ModeConfig
|
|
|
|
_BASE_SETTINGS_TABS = [
|
|
"👤 My Profile", "📝 Resume Profile", "🔎 Search",
|
|
"⚙️ System", "🎯 Fine-Tune", "🔑 License", "💾 Data",
|
|
]
|
|
|
|
LOCAL = ModeConfig(
|
|
name="local",
|
|
base_url="http://localhost:8501/peregrine",
|
|
auth_setup=lambda ctx: None,
|
|
expected_failures=[],
|
|
results_dir=Path("tests/e2e/results/local"),
|
|
settings_tabs=_BASE_SETTINGS_TABS,
|
|
)
|