from pathlib import Path from streamlit.testing.v1 import AppTest def test_manager_reviews_and_saves(tmp_path, monkeypatch): monkeypatch.setenv("LEADS_FILE", str(tmp_path / "leads.xlsx")) app = AppTest.from_file( str(Path(__file__).resolve().parents[1] / "app.py"), default_timeout=30 ).run() app.radio(key="mode").set_value("DEMO").run() app.button(key="process").click().run() assert app.error app.text_area(key="lead").set_value("Течёт стиральная машина, вода на полу").run() app.button(key="process").click().run() assert app.selectbox[0].value == "urgent" app.selectbox[0].set_value("normal").run() app.text_area[1].set_value("Уточните модель машины.").run() app.button(key="save").click().run() assert not app.exception from src.storage import snapshot rows, content = snapshot(tmp_path / "leads.xlsx") assert rows[0]["Категория"] == "Не срочно" assert rows[0]["Черновик ответа"] == "Уточните модель машины." assert rows[0]["Режим обработки"] == "DEMO" assert content.startswith(b"PK") assert not any(button.key == "save" for button in app.button)