first commit
Build and deploy / build-and-push (push) Successful in 17s
Build and deploy / deploy (push) Successful in 10s

This commit is contained in:
william
2026-08-21 16:23:49 +02:00
committed by william
commit 3f4ebc4527
248 changed files with 10180 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
"""Tests du panneau à onglets / visibilité mutuellement exclusive (2.3)."""
import json
import re
def _create_screen(client, slug, name="Accueil"):
resp = client.post(f"/game/{slug}/screens/new", data={"name": name}, follow_redirects=False)
return int(re.search(r"/screens/(\d+)/edit", resp.headers["Location"]).group(1))
def test_activer_onglet_action_node_persists_target_element(client, game):
"""Régression 2.3 : le nouveau type d'action doit accepter un élément
cible comme "modifier_element", sans propriété/valeur associées (tout
est déduit automatiquement au clic côté jouable : montrer CET élément,
masquer ses frères)."""
screen_id = _create_screen(client, game)
resp = client.post(f"/game/{game}/screens/{screen_id}/elements/add", data={"widget": "conteneur"})
parent_id = int(re.search(r"selected=(\d+)", resp.headers["Location"]).group(1))
child_ids = []
for _ in range(3):
resp = client.post(f"/game/{game}/elements/{parent_id}/children/add", data={"widget": "titre"})
child_ids.append(int(re.search(r"selected=(\d+)", resp.headers["Location"]).group(1)))
resp = client.post(
f"/game/{game}/screens/{screen_id}/flow/nodes/add",
data=json.dumps({"node_type": "action", "action_type": "activer_onglet", "target_element_id": child_ids[1]}),
content_type="application/json",
)
assert resp.status_code == 200
node = resp.get_json()
assert node["action_type"] == "activer_onglet"
assert node["target_element_id"] == child_ids[1]
def test_play_page_exposes_activer_onglet_runtime(client, game):
"""Le runtime jouable doit savoir exécuter "activer_onglet" (montrer un
élément, masquer ses frères) — vérifie que le JS livré au joueur
contient bien cette logique, sans dépendre d'un navigateur."""
resp = client.get(f"/game/{game}/play")
html = resp.data.decode()
assert "'activer_onglet'" in html
assert "parentKey" in html