forked from retoor/devplacepy
Update
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
import json
|
||||
|
||||
from tests.conftest import run_async
|
||||
from devplacepy.services.devii.interaction.broker import InteractionBroker
|
||||
from devplacepy.services.devii.interaction.controller import InteractionController
|
||||
|
||||
|
||||
def test_ui_prompt_dispatch():
|
||||
async def wait_site(interaction_id, frame, timeout):
|
||||
return {
|
||||
"status": "submitted",
|
||||
"interaction_id": interaction_id,
|
||||
"values": {"env": "staging"},
|
||||
}
|
||||
|
||||
broker = InteractionBroker("main", wait_site=wait_site)
|
||||
controller = InteractionController(broker)
|
||||
raw = run_async(
|
||||
controller.dispatch(
|
||||
"ui_prompt",
|
||||
{
|
||||
"title": "Env?",
|
||||
"widgets": [
|
||||
{
|
||||
"type": "choice",
|
||||
"name": "env",
|
||||
"label": "Env",
|
||||
"options": [
|
||||
{"value": "staging", "label": "Staging"},
|
||||
{"value": "prod", "label": "Prod"},
|
||||
],
|
||||
}
|
||||
],
|
||||
},
|
||||
)
|
||||
)
|
||||
data = json.loads(raw)
|
||||
assert data["status"] == "submitted"
|
||||
assert data["values"]["env"] == "staging"
|
||||
|
||||
|
||||
def test_ui_notify_on_site():
|
||||
events = []
|
||||
|
||||
async def emit(payload):
|
||||
events.append(payload)
|
||||
|
||||
broker = InteractionBroker("main", emit=emit)
|
||||
controller = InteractionController(broker)
|
||||
raw = run_async(controller.dispatch("ui_notify", {"text": "Working..."}))
|
||||
data = json.loads(raw)
|
||||
assert data["status"] == "ok"
|
||||
assert events and events[0]["type"] == "status"
|
||||
Reference in New Issue
Block a user