add a datastar action
This commit is contained in:
parent
33dbb143fd
commit
3fc999a69b
3 changed files with 142 additions and 2 deletions
|
|
@ -134,5 +134,61 @@ def test_render_dashboard_uses_active_jobs_from_app_state() -> None:
|
|||
|
||||
assert "27" in body
|
||||
assert "Temporary live demo counter for Datastar refresh testing" in body
|
||||
assert "/demo/decrement" in body
|
||||
assert "data-bind:decrement-amount" in body
|
||||
|
||||
asyncio.run(run())
|
||||
|
||||
|
||||
def test_demo_decrement_action_decrements_active_jobs() -> None:
|
||||
async def run() -> None:
|
||||
app = create_app(enable_demo_refresh=False)
|
||||
broker = get_refresh_broker(app)
|
||||
queue = broker.subscribe()
|
||||
client = app.test_client()
|
||||
|
||||
response = await client.post(
|
||||
"/demo/decrement",
|
||||
headers={"Datastar-Request": "true"},
|
||||
json={"decrementAmount": "3"},
|
||||
)
|
||||
body = await response.get_data(as_text=True)
|
||||
event = await asyncio.wait_for(queue.get(), timeout=1)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert get_active_jobs(app) == 9
|
||||
assert event == "refresh-event"
|
||||
assert 'data: signals {"decrementError":""}' in body
|
||||
broker.unsubscribe(queue)
|
||||
|
||||
asyncio.run(run())
|
||||
|
||||
|
||||
def test_demo_decrement_action_validates_odd_amount() -> None:
|
||||
async def run() -> None:
|
||||
app = create_app(enable_demo_refresh=False)
|
||||
broker = get_refresh_broker(app)
|
||||
queue = broker.subscribe()
|
||||
client = app.test_client()
|
||||
|
||||
response = await client.post(
|
||||
"/demo/decrement",
|
||||
headers={"Datastar-Request": "true"},
|
||||
json={"decrementAmount": "2"},
|
||||
)
|
||||
body = await response.get_data(as_text=True)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert get_active_jobs(app) == 12
|
||||
assert "odd integer" in body
|
||||
|
||||
try:
|
||||
await asyncio.wait_for(queue.get(), timeout=0.1)
|
||||
except TimeoutError:
|
||||
pass
|
||||
else:
|
||||
raise AssertionError("invalid decrement should not publish a refresh")
|
||||
finally:
|
||||
broker.unsubscribe(queue)
|
||||
|
||||
asyncio.run(run())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue