|
# retoor <retoor@molodetz.nl>
|
|
|
|
from tests.conftest import run_async
|
|
from devplacepy.services.devii.interaction.broker import InteractionBroker
|
|
|
|
|
|
def test_answer_text_completes_open_prompt():
|
|
captured = {}
|
|
|
|
async def wait_site(interaction_id, frame, timeout):
|
|
captured["id"] = interaction_id
|
|
outcome = broker.answer_text("13/01/1990")
|
|
assert outcome["handled"] is True
|
|
assert outcome["status"] == "submitted"
|
|
return outcome["result"]
|
|
|
|
broker = InteractionBroker("main", wait_site=wait_site)
|
|
result = run_async(
|
|
broker.prompt(
|
|
{
|
|
"title": "When?",
|
|
"widgets": [{"type": "date", "name": "day", "label": "Day"}],
|
|
}
|
|
)
|
|
)
|
|
assert result.status == "submitted"
|
|
assert result.values == {"day": "13/01/1990"}
|
|
assert result.meta.get("via") == "text"
|
|
|
|
|
|
def test_answer_text_rejects_free_chat_as_date():
|
|
async def wait_site(interaction_id, frame, timeout):
|
|
bad = broker.answer_text("Show me number input then.")
|
|
assert bad["status"] == "error"
|
|
good = broker.answer_text("13/01/1990")
|
|
return good["result"]
|
|
|
|
broker = InteractionBroker("main", wait_site=wait_site)
|
|
result = run_async(
|
|
broker.prompt(
|
|
{
|
|
"title": "When?",
|
|
"widgets": [{"type": "date", "name": "day", "label": "Day"}],
|
|
}
|
|
)
|
|
)
|
|
assert result.status == "submitted"
|
|
assert result.values == {"day": "13/01/1990"}
|