overlay_detail: add 'Refresh from Steam' button for workshop overlays
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
e1b189ad3c
commit
25b38e633d
2 changed files with 33 additions and 0 deletions
|
|
@ -51,6 +51,10 @@
|
|||
<label>Workshop input <textarea name="input" rows="3" placeholder="123456789 https://steamcommunity.com/sharedfiles/filedetails/?id=987654321"></textarea></label>
|
||||
<button type="submit">Add</button>
|
||||
</form>
|
||||
<form method="post" action="/overlays/{{ overlay.id }}/refresh" class="stack workshop-refresh-form">
|
||||
<input type="hidden" name="csrf_token" value="{{ session.get('csrf_token', '') }}">
|
||||
<button type="submit">Refresh from Steam</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
|
||||
<div id="overlay-item-table">
|
||||
|
|
|
|||
|
|
@ -742,3 +742,32 @@ def test_overlay_detail_no_global_source_block(auth_client_with_server) -> None:
|
|||
|
||||
assert "Global source" not in text
|
||||
assert "source_url" not in text
|
||||
|
||||
|
||||
def test_workshop_overlay_detail_renders_refresh_button(auth_client_with_server) -> None:
|
||||
"""The owner sees a 'Refresh from Steam' button on their workshop overlay."""
|
||||
with session_scope() as s:
|
||||
user_id = s.query(User).filter_by(username="alice").one().id
|
||||
overlay_id = _seed_overlay("ws-refresh-button", "workshop", user_id)
|
||||
|
||||
response = auth_client_with_server.get(f"/overlays/{overlay_id}")
|
||||
text = response.get_data(as_text=True)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert "Refresh from Steam" in text
|
||||
assert f'action="/overlays/{overlay_id}/refresh"' in text
|
||||
|
||||
|
||||
def test_workshop_overlay_refresh_button_hidden_during_build(auth_client_with_server) -> None:
|
||||
"""While a build is in flight the Refresh button hides, matching the Add form."""
|
||||
with session_scope() as s:
|
||||
user_id = s.query(User).filter_by(username="alice").one().id
|
||||
overlay_id = _seed_overlay("ws-refresh-hidden", "workshop", user_id)
|
||||
with session_scope() as s:
|
||||
s.add(Job(user_id=user_id, overlay_id=overlay_id, operation="build_overlay", state="running"))
|
||||
|
||||
response = auth_client_with_server.get(f"/overlays/{overlay_id}")
|
||||
text = response.get_data(as_text=True)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert "Refresh from Steam" not in text
|
||||
|
|
|
|||
Loading…
Reference in a new issue